コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

利用者:Mizusumashi/Script/FA.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • Cmd Shift を押しながら R を押す。

詳細についてはWikipedia:キャッシュを消すをご覧ください。

/* Link FA */
/** set to false in Special:Mypage/monobook.js to switch off this "feature" */
var linkFA_enabled = true;
 
/** description that is displayed when cursor hovers above FA interwiki links */
var linkFA_description = "この記事は秀逸な記事に選ばれています";
 
/**
 * star logo for featured articles in other languages,
 * see Template:Link_FA
 */
function LinkFA() {
    // early exit when disabled
    alert(skin);
    if (!linkFA_enabled) return;
 
    // skins need to be treated differently
    if (skin == "monobook" || skin == "simple" || skin == "modern" || skin == "myskin" || skin == "chick") {
        newer();
    }
    else if (skin == "standard" || skin == "cologneblue" || skin == "nostalgia") {
        older();
    }
 
    /** monobook, simple, modern, myskin, chick */
    function newer() {
        // links are to replaced in p-lang only
        var pLang = document.getElementById("p-lang");
        if (!pLang) return;
        var fas = getElementsByClassName(document, 'span', 'FA');
        var lis = pLang.getElementsByTagName("li");
        for (var i = 0; i < fas.length; i++) {
            var fa = fas[i];
            for(var j = 0; j < lis.length; j++) {
                var li = lis[j];
                // only links with a corresponding Link_FA template are interesting
                if (li.className == 'interwiki-' + fa.id) {
                    li.className += " FA";
                    li.style.listStyleImage = "url('http://upload.wikimedia.org/wikipedia/commons/d/d0/Monobook-bullet-star-transparent.png')";
                    li.title = linkFA_description;
                }
            }
        }
    }
 
    /** standard, cologneblue, nostalgia */
    function older() {
        // these root elements can contain FA-links
        var rootIds = new Array("topbar", "footer");
        var fas     = getElementsByClassName(document, 'span', 'FA');
        for (var i = 0; i < rootIds.length; i++) {
            var rootId = rootIds[i];
            var root   = document.getElementById(rootId);
            if (!root) continue;
 
            // if the root exists, iterate all links within
            var links  = root.getElementsByTagName("a");
            for (var j = 0; j < links.length; j++) {
                var link = links[j];
                var lang = link.title.split(":")[0]; // not precise enough
                for (var k = 0; k < fas.length; k++) {
                    // only decorate a FA-link
                    if (fas[k].id == lang) decorate(link);
                }
            }
        }
    }
 
    /** modify a link to show the FA-star (older) */
    function decorate(link) {
        alert(link);
        alert(link.innerHTML);
        // possible problem owing the standard skin: "Link FA" template is transcluded with a non-interwiki parameter, for example "Special"
        // result: links to special pages in the topbar and/or footer might also be marked as a Featured Article
 
        // build an image-node for the FA-star
        var img = document.createElement("img");
        img.setAttribute("src",   "http://upload.wikimedia.org/wikipedia/commons/d/d0/Monobook-bullet-star-transparent.png");
        img.setAttribute("alt",   linkFA_description);
        img.setAttribute("style", "margin-right: 0.2em;");
 
        // decorate the link with the image
        link.appendChild(img);
        link.appendChild(link.removeChild(link.firstChild));
        link.setAttribute("title", linkFA_description);
    }
}
$(LinkFA);