Nota: dopo aver salvato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.

  • Firefox / Safari: tenere premuto il tasto delle maiuscole e fare clic su Ricarica, oppure premere Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premere Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Internet Explorer: tenere premuto il tasto Ctrl mentre si fa clic su Refresh, oppure premere Ctrl-F5
  • Opera: svuotare completamente la cache dal menu Strumenti → Preferenze
var specialChars = [     { displayText: 'Smile', value: '😀' },     { displayText: 'Firma', value: '<nowiki>--~~~~</nowiki>' },     { displayText: 'Template', value: '{{}}' } ];  function initReplyCharacterInsert() {     // Check if the new reply tool is enabled     if (mw.config.get('wgDiscussionToolsFeaturesEnabled')) {         waitForElement(".ext-discussiontools-ui-replyWidget-bodyWrapper", 10, 500, function(bodyWrapper) {             if (bodyWrapper && !document.getElementById('customCharInsertButtons')) {                 const placeholder = bodyWrapper.querySelector('.ve-ui-surface-placeholder');                 if (placeholder) {                     placeholder.style.display = 'none'; // Hide placeholder                     placeholder.classList.add('oo-ui-element-hidden');                 }                 insertCharacterButtons(bodyWrapper);             }         });     } }  function insertCharacterButtons(bodyWrapper) {     const buttonContainer = document.createElement('div');     buttonContainer.id = 'customCharInsertButtons';      specialChars.forEach(charObj => {         const button = document.createElement('button');         button.textContent = charObj.displayText;         button.style.margin = '5px';         button.onclick = () => {             const contentEditableDiv = bodyWrapper.querySelector('.ve-ce-documentNode[contenteditable="true"]');             insertHtmlAtCursor(contentEditableDiv, charObj.value);         };         buttonContainer.appendChild(button);     });      bodyWrapper.parentNode.insertBefore(buttonContainer, bodyWrapper.nextSibling); }  function insertHtmlAtCursor(contentEditableDiv, html) {     contentEditableDiv.focus();     document.execCommand('insertHTML', false, html); }  function waitForElement(selector, attemptsLeft, interval, callback) {     const element = document.querySelector(selector);     if (element) {         callback(element);     } else if (attemptsLeft > 0) {         setTimeout(() => {             waitForElement(selector, attemptsLeft - 1, interval, callback);         }, interval);     } else {         callback(null);     } }  $(document).ready(function() {     initReplyCharacterInsert(); // Initialize the character insert functionality });