Benutzer:Rob/common.js
Aus WORLDFISH WIKI
Version vom 28. November 2018, 09:10 Uhr von Rob (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „ const POSITION_ABOVE = 0; const POSITION_BEYOND = 1; const ID_TOOLBAR = "cebToolbar"; // Set this value to the ID of the targ…“)
Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Gehe zu Menü → Einstellungen (Opera → Einstellungen auf dem Mac) und dann auf Datenschutz & Sicherheit → Browserdaten löschen → Gespeicherte Bilder und Dateien.
const POSITION_ABOVE = 0; const POSITION_BEYOND = 1; const ID_TOOLBAR = "cebToolbar"; // Set this value to the ID of the target text area: var nameOfTargetBox = null; var targetNode = null; //Insert buttons with properties text, icon, prefix, suffix, etc. (see createButtons for details) var buttonList = []; function addToolbar(referenceNode, position) { if(!referenceNode) { console.error("Cannot add tool bar, invalid reference node"); return; } const buttons = createButtons(); const toolbar = document.createElement("div"); toolbar.setAttribute("id", ID_TOOLBAR); for(var i = 0; i < buttons.length; i++) { toolbar.appendChild(buttons[i]); } if(position == POSITION_BEYOND) referenceNode.insertAdjacentElement("afterend", toolbar); else referenceNode.insertAdjacentElement("beforebegin", toolbar); } function insertText(textBeforeCursor, textAfterCursor) { const start = targetNode.selectionStart; const end = targetNode.selectionEnd; const text = targetNode.value; var output = text.substr(0, start) + textBeforeCursor; output += text.substr(start, end - start); output += textAfterCursor + text.substr(end, text.length - end); targetNode.value = output; targetNode.selectionStart = start + textBeforeCursor.length; targetNode.selectionEnd = end + textBeforeCursor.length; targetNode.focus(); } function createButtons() { const buttonElements = []; for(var i = 0; i < buttonList.length; i++) { const button = buttonList[i]; const buttonElement = document.createElement("button"); buttonElement.type = "button"; buttonElement.innerHTML = button.content; buttonElement.onclick = function () { insertText(button.prefix, button.suffix); }; buttonElements.push(buttonElement); } return buttonElements; } function setup() { /* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */ if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) { mw.loader.using('user.options').then(function () { targetNode = document.getElementById(nameOfTargetBox); addToolbar(targetNode, POSITION_BEYOND); }); } } buttonList = [{"content":"Quote","prefix":"\"","suffix":"\""},{"content":"Kommentar","prefix":"<!-- ","suffix":" -->"},{"content":"Noch ein Button","prefix":"Nur ein Präfix","suffix":""}]; nameOfTargetBox = "wpTextbox1"; setup();