Хутшăнакан:Prince Kassad/monobook.js
Википедири материал
Замечание: Чтобы после сохранения увидеть сделанные изменения, очистите кеш своего браузера: Mozilla / Firefox: Ctrl+Shift+R, IE: Ctrl+F5, Safari: Cmd+Shift+R, Konqueror: F5, Opera: через меню Tools→Preferences.
//JavaScript - Replace Latin w/ Cyrillic equivalents //based on code by [[de:Benutzer:Fomafix]], licensed under //the GFDL var rangefont = [ [ "\u0102", "\u04d0"], [ "\u0103", "\u04d1"], [ "\u0114", "\u04d6"], [ "\u0115", "\u04d7"], [ "\u00c7", "\u04aa"], [ "\u00e7", "\u04ab"], ]; function fixhtml(str) { for (var i = 0 ; i < rangefont.length; i++) { var range = rangefont[i][0]; var fontFamily = rangefont[i][1]; var re = new RegExp('[' + range + ']+', 'gm'); str = str.replace(re,fontFamily); } return str; } function traverse (node) { for (var child = node.firstChild; child; child = child.nextSibling) { switch (child.nodeType) { case 1: // ELEMENT_NODE switch (child.nodeName) { // bei folgenden Elementen nicht absteigen und ersetzen. case "APPLET": case "BASE": case "BR": case "FRAME": case "FRAMESET": case "HR": case "IFRAME": case "IMG": case "INPUT": case "LINK": case "OBJECT": case "SCRIPT": case "STYLE": case "TEXTAREA": case "TITLE": break; default: traverse(child); // Rekursiv absteigen. break; } break; case 3: // TEXT_NODE var html = fixhtml(child.nodeValue); // ergaenze HTML-Code. if (html == child.nodeValue) break; // es wurde nichts ersetzt. Fertig. var span = document.createElement('span'); span.innerHTML = html; // Neuen HTML-Code unter ein span haengen. var last = span.firstChild; if (!last) break; for (var next = last.nextSibling; next; next = next.nextSibling) { node.insertBefore(last, child); last = next; } node.replaceChild(last, child); child = last; break; } } } function fixunicode() { traverse(document.getElementById('content')); } addOnloadHook(fixunicode);