Sujet résolu
L'auteur a trouvé une solution à son problème.
Sponsorisé
Connectez-vous pour masquer les pubsCeleste
2h
Pour
Niveau 10
les Niveau 10
comme Niveau 10
Niveau 10
Ouais mais c'est super chiant faut cliquer à chaque fois pour lire.
il y a 2 heures
Ouais mais c'est super chiant faut cliquer à chaque fois pour lire.
Niveau 10
il y a 2 heures
Celeste
2h
// ==UserScript==
// @name Onche.org Auto Balise [niveau]
// @namespace onche-auto-niveau
// @version 1.1
// @description Entoure automatiquement le message posté sur onche.org avec un niveau 10
// @match
https://onche.org/*
// @run-at document-idle
// @grant none
// ==/UserScript==
(function () {
'use strict';
// ----------------- CONFIGURATION -----------------
const NIVEAU = 10;
const OPEN_TAG = `[niveau=${NIVEAU}]`;
const CLOSE_TAG = `[/niveau]`;
// ---------------------------------------------------
function alreadyWrapped(text) {
const trimmed = text.trim();
return trimmed.startsWith(OPEN_TAG) && trimmed.endsWith(CLOSE_TAG);
}
function wrapTextarea(textarea) {
if (!textarea || !textarea.value.trim()) return;
if (alreadyWrapped(textarea.value)) return;
textarea.value = `${OPEN_TAG}${textarea.value}${CLOSE_TAG}`;
// Certains frameworks JS (Vue/React) écoutent l'event "input" pour
// synchroniser leur état interne avec le textarea : on le déclenche
// pour être sûr que la vraie valeur envoyée soit bien la version taguée.
textarea.dispatchEvent(new Event('input', { bubbles: true }));
}
function handleForm(form) {
const textarea = form.querySelector('textarea.composer__textarea, textarea[name="message"]');
wrapTextarea(textarea);
}
// Cas 1 : soumission classique du formulaire (submit)
document.addEventListener(
'submit',
function (e) {
const form = e.target;
if (!(form instanceof HTMLFormElement)) return;
if (!form.classList.contains('composer')) return;
handleForm(form);
},
true // capture : on modifie AVANT que le formulaire ne parte
);
// Cas 2 : clic sur le bouton "Envoyer" (au cas où le submit est intercepté en JS)
document.addEventListener(
'click',
function (e) {
const btn = e.target.closest('button.composer__send');
if (!btn) return;
const form = btn.closest('form.composer');
if (form) handleForm(form);
},
true
);
// Cas 3 : raccourci clavier Ctrl+Entrée (affiché dans l'UI : "Ctrl ↵")
document.addEventListener(
'keydown',
function (e) {
if (!(e.ctrlKey && e.key === 'Enter')) return;
const textarea = e.target.closest('textarea.composer__textarea');
if (!textarea) return;
const form = textarea.closest('form.composer');
if (form) handleForm(form);
},
true
);
})();

// @name Onche.org Auto Balise [niveau]
// @namespace onche-auto-niveau
// @version 1.1
// @description Entoure automatiquement le message posté sur onche.org avec un niveau 10
// @match
// @run-at document-idle
// @grant none
// ==/UserScript==
(function () {
'use strict';
// ----------------- CONFIGURATION -----------------
const NIVEAU = 10;
const OPEN_TAG = `[niveau=${NIVEAU}]`;
const CLOSE_TAG = `[/niveau]`;
// ---------------------------------------------------
function alreadyWrapped(text) {
const trimmed = text.trim();
return trimmed.startsWith(OPEN_TAG) && trimmed.endsWith(CLOSE_TAG);
}
function wrapTextarea(textarea) {
if (!textarea || !textarea.value.trim()) return;
if (alreadyWrapped(textarea.value)) return;
textarea.value = `${OPEN_TAG}${textarea.value}${CLOSE_TAG}`;
// Certains frameworks JS (Vue/React) écoutent l'event "input" pour
// synchroniser leur état interne avec le textarea : on le déclenche
// pour être sûr que la vraie valeur envoyée soit bien la version taguée.
textarea.dispatchEvent(new Event('input', { bubbles: true }));
}
function handleForm(form) {
const textarea = form.querySelector('textarea.composer__textarea, textarea[name="message"]');
wrapTextarea(textarea);
}
// Cas 1 : soumission classique du formulaire (submit)
document.addEventListener(
'submit',
function (e) {
const form = e.target;
if (!(form instanceof HTMLFormElement)) return;
if (!form.classList.contains('composer')) return;
handleForm(form);
},
true // capture : on modifie AVANT que le formulaire ne parte
);
// Cas 2 : clic sur le bouton "Envoyer" (au cas où le submit est intercepté en JS)
document.addEventListener(
'click',
function (e) {
const btn = e.target.closest('button.composer__send');
if (!btn) return;
const form = btn.closest('form.composer');
if (form) handleForm(form);
},
true
);
// Cas 3 : raccourci clavier Ctrl+Entrée (affiché dans l'UI : "Ctrl ↵")
document.addEventListener(
'keydown',
function (e) {
if (!(e.ctrlKey && e.key === 'Enter')) return;
const textarea = e.target.closest('textarea.composer__textarea');
if (!textarea) return;
const form = textarea.closest('form.composer');
if (form) handleForm(form);
},
true
);
})();
Niveau 10
il y a 2 heures
Sponsorisé
Connectez-vous pour masquer les pubsNiveau 10
quand même Niveau 10
, faut Niveau 10
parNiveau 10
Ce post a été rédigé par mon alter, l'Oberleutnant Ehrenberg, je n'en suis pas responsable
il y a 2 heures-PEMT
Celeste
2h
// ==UserScript==
// @name Onche.org Auto Balise [niveau]
// @namespace onche-auto-niveau
// @version 1.1
// @description Entoure automatiquement le message posté sur onche.org avec un niveau 10
// @match
https://onche.org/*
// @run-at document-idle
// @grant none
// ==/UserScript==
(function () {
'use strict';
// ----------------- CONFIGURATION -----------------
const NIVEAU = 10;
const OPEN_TAG = `[niveau=${NIVEAU}]`;
const CLOSE_TAG = `[/niveau]`;
// ---------------------------------------------------
function alreadyWrapped(text) {
const trimmed = text.trim();
return trimmed.startsWith(OPEN_TAG) && trimmed.endsWith(CLOSE_TAG);
}
function wrapTextarea(textarea) {
if (!textarea || !textarea.value.trim()) return;
if (alreadyWrapped(textarea.value)) return;
textarea.value = `${OPEN_TAG}${textarea.value}${CLOSE_TAG}`;
// Certains frameworks JS (Vue/React) écoutent l'event "input" pour
// synchroniser leur état interne avec le textarea : on le déclenche
// pour être sûr que la vraie valeur envoyée soit bien la version taguée.
textarea.dispatchEvent(new Event('input', { bubbles: true }));
}
function handleForm(form) {
const textarea = form.querySelector('textarea.composer__textarea, textarea[name="message"]');
wrapTextarea(textarea);
}
// Cas 1 : soumission classique du formulaire (submit)
document.addEventListener(
'submit',
function (e) {
const form = e.target;
if (!(form instanceof HTMLFormElement)) return;
if (!form.classList.contains('composer')) return;
handleForm(form);
},
true // capture : on modifie AVANT que le formulaire ne parte
);
// Cas 2 : clic sur le bouton "Envoyer" (au cas où le submit est intercepté en JS)
document.addEventListener(
'click',
function (e) {
const btn = e.target.closest('button.composer__send');
if (!btn) return;
const form = btn.closest('form.composer');
if (form) handleForm(form);
},
true
);
// Cas 3 : raccourci clavier Ctrl+Entrée (affiché dans l'UI : "Ctrl ↵")
document.addEventListener(
'keydown',
function (e) {
if (!(e.ctrlKey && e.key === 'Enter')) return;
const textarea = e.target.closest('textarea.composer__textarea');
if (!textarea) return;
const form = textarea.closest('form.composer');
if (form) handleForm(form);
},
true
);
})();

// @name Onche.org Auto Balise [niveau]
// @namespace onche-auto-niveau
// @version 1.1
// @description Entoure automatiquement le message posté sur onche.org avec un niveau 10
// @match
// @run-at document-idle
// @grant none
// ==/UserScript==
(function () {
'use strict';
// ----------------- CONFIGURATION -----------------
const NIVEAU = 10;
const OPEN_TAG = `[niveau=${NIVEAU}]`;
const CLOSE_TAG = `[/niveau]`;
// ---------------------------------------------------
function alreadyWrapped(text) {
const trimmed = text.trim();
return trimmed.startsWith(OPEN_TAG) && trimmed.endsWith(CLOSE_TAG);
}
function wrapTextarea(textarea) {
if (!textarea || !textarea.value.trim()) return;
if (alreadyWrapped(textarea.value)) return;
textarea.value = `${OPEN_TAG}${textarea.value}${CLOSE_TAG}`;
// Certains frameworks JS (Vue/React) écoutent l'event "input" pour
// synchroniser leur état interne avec le textarea : on le déclenche
// pour être sûr que la vraie valeur envoyée soit bien la version taguée.
textarea.dispatchEvent(new Event('input', { bubbles: true }));
}
function handleForm(form) {
const textarea = form.querySelector('textarea.composer__textarea, textarea[name="message"]');
wrapTextarea(textarea);
}
// Cas 1 : soumission classique du formulaire (submit)
document.addEventListener(
'submit',
function (e) {
const form = e.target;
if (!(form instanceof HTMLFormElement)) return;
if (!form.classList.contains('composer')) return;
handleForm(form);
},
true // capture : on modifie AVANT que le formulaire ne parte
);
// Cas 2 : clic sur le bouton "Envoyer" (au cas où le submit est intercepté en JS)
document.addEventListener(
'click',
function (e) {
const btn = e.target.closest('button.composer__send');
if (!btn) return;
const form = btn.closest('form.composer');
if (form) handleForm(form);
},
true
);
// Cas 3 : raccourci clavier Ctrl+Entrée (affiché dans l'UI : "Ctrl ↵")
document.addEventListener(
'keydown',
function (e) {
if (!(e.ctrlKey && e.key === 'Enter')) return;
const textarea = e.target.closest('textarea.composer__textarea');
if (!textarea) return;
const form = textarea.closest('form.composer');
if (form) handleForm(form);
},
true
);
})();
Je comprends que dalle en code quelqu'un explique
Arrêtez de vous prendre trop au sérieux
il y a 2 heures-PEMT
Ouienttt
2h
Onche : je deteste le système de niveau de JVC
Onche aussi :
Onche aussi :
C'est pas du tout la même chose
Arrêtez de vous prendre trop au sérieux
il y a 2 heures
En ligne
219
Sur ce sujet0



























