MediaWiki diskuse:Monobook.js
Z Wikipedie, otevřené encyklopedie
[editovat] Chybná funkce LinkFA
Funkci LinkFA je třeba upravit, neboť za určité, poměrně pravděpodobné, konstelace způsobuje chybu v IE. Chybu vzhledem k bugu v interpretru JScriptu nelze vymýtit, ale pravděpodobnost lze eliminovat na minimální vhodnou volbou názvu proměnných.
Funkce sama o sobě je navíc naprosto neoptimalizovaná a tudíž zbytečně náročná na zdroje.
Následuje zápis funkce s opravou prvního, závažnějšího, problému a českým komentářem:
/* hvězdičky pro featured articles v jiných jazycích */
function LinkFA()
{
// iterace přes všechny <span> elementy
for(var i=0; nodLinkFA = document.getElementsByTagName("span")[i]; i++) {
// pokud najdu <span> s class obsahujícím "FA"
if(nodLinkFA.className == "FA") {
// iterace přes všechny <li> elementy
for(var j=0; nodInterwiki = document.getElementsByTagName("li")[j]; j++) {
// pokud najdu interwiki daného jazyka
if(nodInterwiki.className == "interwiki-" + nodLinkFA.id) {
nodInterwiki.style.padding = "0 0 0 16px";
nodInterwiki.style.backgroundImage = "url('http://upload.wikimedia.org/wikipedia/en/6/60/LinkFA-star.png')";
nodInterwiki.style.backgroundRepeat = "no-repeat";
nodInterwiki.title = "Tento článek patří mezi nejlepší";
}
}
}
}
}
V případě zájmu mohu dodat i optimalizovanou verzi.
— Danny B. diskuse | mail přehled příspěvků 15:48, 9. 3. 2006 (UTC)

