Utilisateur:Automatik/sul.js
Remarque: après avoir sauvegardé, vous devez vider le cache de votre navigateur pour que les changements prennent effet. Mozilla, cliquez sur Actualiser (ou ctrl-r). Internet Explorer / Opera: ctrl-f5. Safari: cmd-r. Konqueror ctrl-r.
/************ Adaptation de codes JS ******************
************ pour usages interprojet *****************
******************************************************/
( function ( mw, $ ) { // Closure fermée à la toute fin du script
///////////////////// SpecialChars ///////////////////////
/////// remplacement des séquences de caractères ////////
// hookage de la fonction, sauf sur les pages en JS ou CSS
// (ce gadget serait une nuisance sur de telles pages)
var title = mw.config.get( 'wgTitle' );
var P3 = title.substring( title.length-3 );
var P4 = title.substring( title.length-4 );
var namespace = mw.config.get('wgNamespaceNumber');
if ( (P3 !== ".js") && (P4 !== ".css") || (P3 === ".js" || P4 === ".css") && namespace%2 === 1 ) {
$(SpecChar_Main);
}
function SpecChar_Main() {
tb = document.getElementById("wpTextbox1");
if (!tb) return;
tb.onkeyup = function(e) {
var key = (window.event) ? event.keyCode : e.keyCode;
startPos = tb.selectionStart;
endPos = tb.selectionEnd;
if ( endPos==startPos && (key>=12 && key<=255) ) {
m = tb.value.substring(startPos-2, startPos);
m3 = tb.value.substring(startPos-3, startPos);
f = tb.value.substring(startPos);
todo = true;
i = 2;
switch (m) { //traitement de des séquences de 2 caractères
case "$s":m="ſ";break;
case "$à":m="À";break;
case "$é":m="É";break;
case "$è":m="È";break;
case "$ç":m="Ç";break;
case "$-":m="– ";break;
case "$_":m="— ";break;
case "<<":m="« ";break;
case ">>":m=" »";break;
case "$ù":m="Ù";break;
case "$$":m=" — ~~" + "~~";break;
default:todo=false;
}
if (!todo) { //traitement de des séquences de 3 caractères
m=m3; todo=true; i=3;
switch (m) {
case "$oe":m="œ";break;
case "$ae":m="æ";break;
case "$OE":m="Œ";break;
case "$AE":m="Æ";break;
case "$aa":m="ā";break;
case "$ii":m="ī";break;
case "$ee":m="ē";break;
case "$uu":m="ū";break;
case "$oo":m="ō";break;
case "$AA":m="Ā";break;
case "$II":m="Ī";break;
case "$EE":m="Ē";break;
case "$UU":m="Ū";break;
case "$OO":m="Ō";break;
case "...":m="…";break;
default:todo=false;
}
}
if (todo) {
var textScroll = tb.scrollTop;
h = tb.value.substring(0, startPos-i);
tb.value = h+m+f;
tb.selectionStart = startPos-i + m.length;
tb.selectionEnd = tb.selectionStart;
tb.scrollTop = textScroll;
}
}
};
}
} ( mediaWiki, jQuery ) ); // Fin de la closure