MediaWiki:Monobook.js

出典: Knatech

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

  • Mozilla / Firefox / Safari: [Shift] を押しながら [再読み込み] をクリック、または [Ctrl]-[F5] か [Ctrl]-[R] (Macintoshでは [Cmd]-[Shift]-[R])
  • IE: [Ctrl] を押しながら [更新] をクリック、または [Ctrl]-[F5]
  • Konqueror: [再読み込み] をクリック、または [F5]
  • Opera: 「ツール」→「設定」からキャッシュをクリア。
/* ここに記述したJavaScriptはモノブック・スキンの利用者に影響します */
addOnloadHook(function() {
    //createTitle();
    createSidebarImage();
    //createOpenArenaStatus();
});

function createTitle() {
    var contentNode = document.getElementById("content");
    var headNodes = contentNode.getElementsByTagName("h1");

    var titleNode = null;
    var numHeadNodes = headNodes.length;
    for (var i = 0; i < numHeadNodes; i++) {
        var headNode = headNodes[i];
        if (headNode.className == "firstHeading") {
            titleNode = headNode;
            break;
        }
    }

    var newTitle = "";
    var sepPos = wgPageName.lastIndexOf("/");
    if (sepPos == -1)
        newTitle = wgPageName;
    else
        newTitle = wgPageName.substring(sepPos + 1, wgPageName.length);

    newTitle = newTitle.replace(/_/g, " ");

    if (titleNode.textContent)
        titleNode.textContent = newTitle;
    else
        titleNode.innerText = newTitle;
}

function createSidebarImage() {
    var portletNode = document.getElementById("p-navigation");

    var portletBodyNode = portletNode.getElementsByTagName("div")[0];
    var linkList = portletBodyNode.getElementsByTagName("ul")[0];
    linkList.style.marginLeft = "0px";
    linkList.style.listStyleType = "none";

    var linkListItems = linkList.getElementsByTagName("li");

    var numLinks = linkListItems.length;
    for (var i = 0; i < numLinks; i++) {
        var linkListItem = linkListItems[i];

        var link = linkListItem.getElementsByTagName("a")[0];
    var url = link.href;
        var pageName = url.substring(url.lastIndexOf("/") + 1);

        if (pageName != "Music" &&
            pageName != "Brain" &&
            pageName != "OpenArena") {

            continue;
        }

        var imageFileName = "/wiki/skins/monobook/custom/" + pageName +
            ".png";
        link.innerHTML = "<img src='" + imageFileName + "' width='135px' " +
            "height='50px' alt='" + pageName + "' />";
        link.style.paddingTop = "3px";
        link.style.paddingBottom = "3px";
        link.style.display = "block";
        //link.style.position = "relative";
    }
}

function createOpenArenaStatus() {
    var oaNode = document.getElementById("p-openarena");

    if (wgCanonicalNamespace == "Special" &&
        wgCanonicalSpecialPageName == "ServerStatus") {

        oaNode.style.display = "none";
        return;
    }

    var oaTitleNode = oaNode.getElementsByTagName("h5")[0];
    oaTitleNode.innerHTML = "<a href='/Special:ServerStatus'>OpenArena</a>";

    var sidebarNode = document.getElementById("column-one");
    sidebarNode.removeChild(oaNode);
    var toolboxNode = document.getElementById("p-tb");
    sidebarNode.insertBefore(oaNode, toolboxNode);

    sajax_do_call("wfServerStatusGetStatus", ["oa085ffa"],
        function(resp) {

        var testBodyNode = oaNode.getElementsByTagName("div")[0];
        testBodyNode.innerHTML = "<div><a href='/Special:ServerStatus'>" +
            "LemonSoda FFA</a></div>\n" + resp.responseText;
    });
}
個人用ツール