MediaWiki:Gadget-HotEdit.js
Aspetto
Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.
- Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
- Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
- Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5.
//creazione di un tattoo che richiama la funzione di cattura e prenotazione modifica testo selezionato
var tattoo1="<div style=\"position:fixed;background-color:transparent;bottom:10px;right:10px;z-index:1000;display:block\"><a href=\"javascript:getSelect()\"><img src=\"//upload.wikimedia.org/wikipedia/commons/f/f9/Edit-find-replace.svg\" width=\"30\" height=\"30\" alt=\"Prenotazione edit di testo selezionato\" /></a></div>";
document.getElementById("content").innerHTML += tattoo1;
// creazione variabili di base
var urlEdit=jQuery('#ca-edit a').attr("href");
var listaEdit={};
// cattura testo selezionato e apertura di un prompt per l'inserimento della modifica
function GetSelectedText () {
if (window.getSelection) { // all browsers, except IE before version 9
var range = window.getSelection ();
edit1=range.toString ();
}
else {
if (document.selection.createRange) { // Internet Explorer
var range = document.selection.createRange ();
edit1=range.text;
}
}
if (edit1.length > 0) {
edit2=prompt("Sostituisci:\n"+edit1+"\ncon:",edit1);
return [edit1,edit2];
}
}
// richiamo della funzione di cattura e aggiornamento del link di Modifica pagina
function getSelect() {
coppia=GetSelectedText();
if (coppia && coppia.length == 2) {
listaEdit[coppia[0]]=coppia[1];
uri=urlEdit+"&hotEdit="+encodeURI(JSON.stringify(listaEdit));
jQuery('#ca-edit a').attr("href",uri);
}
}
/* Hot Edit: esegue la lista di replaceAll ricevuta via URI
*/
function HotEditReplace() {
if (mw.config.get("wgAction") == "edit") {
listaEdit=mw.util.getParamValue("hotEdit");
if (listaEdit != undefined) {
listaEdit=JSON.parse(decodeURI(listaEdit));
text=$("#wpTextbox1").text();
for (el in listaEdit)
{text=replaceAll(text,el,listaEdit[el]);
}
$("#wpTextbox1").text(text);
}
}
}
$(document).ready(HotEditReplace);