Потребител:Cameltrader/cyrillic.js

от Уикипедия, свободната енциклопедия

Бележка: След съхранението е необходимо да изтриете кеша на браузъра, за да видите промените: Mozilla / Firefox / Safari: натиснете бутона Shift и щракнете върху Презареждане (Reload), или изберете клавишната комбинация Ctrl-Shift-R (Cmd-Shift-R за Apple Mac); IE: натиснете Ctrl и щракнете върху Refresh, или клавишната комбинация CTRL-F5; Konqueror: щракнете върху Презареждане или натиснете F5; Opera: вероятно е необходимо да изчистите кеша през менюто Tools→Preferences.

 // <nowiki>
addOnloadHook(function () {
    // Precompute utf-8-to-codepoint conversion table
    var cyr = {};
    for (var ch = 0x0400; ch <= 0x052f; ch++) {
        var chUtf8 = new Number( ((ch << 2) & 0x1f00) + (ch & 0x3f) + 0xc080 ).toString(16);
        var chPercent = "%" + chUtf8.substring(0, 2) + "%" + chUtf8.substring(2);
        cyr[chPercent] = cyr[chPercent.toUpperCase()] = String.fromCharCode(ch);
    }
    // Fix anchors
    for (var i = 0; i < document.links.length; i++) {
        var href = document.links[i].href;
        var re = /%(D[01])%([0-9a-fA-F]{2})/gi;
        while (true) {
            re.lastIndex = 0;
            var m = re.exec(href);
            if (m == null) {
                break;
            }
            href = href.substring(0, m.index) + cyr[m[0]]
                    + href.substring(m.index + m[0].length);
        }
        document.links[i].href = href.replace("%28", "(").replace("%29", ")"); // might harm some exotic %-escaped character, but that is unlikely to occur in Bulgarian-language text
    }
});
// </nowiki>