Přeskočit na obsah

Diskuse k MediaWiki:Monobook.js

Obsah stránky není podporován v jiných jazycích.
Z Wikipedie, otevřené encyklopedie
(rozdíl) ← Starší revize | zobrazit aktuální verzi (rozdíl) | Novější revize → (rozdíl)

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('/media/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)