コンテンツにスキップ

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

利用者:Mizusumashi/Script/ReferencePopUp.js

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

多くの WindowsLinux のブラウザ

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

Mac における Safari

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

Mac における ChromeFirefox

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

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

/*
 *  Reference Pop Up
 *
 *      This script is under public domain, and comes with ABSOLUTELY NO WARRANTY.
 *      You can use/modify/redistribute without any permission.
 */

//  for WIkipedia user script
//
//  How to use:
//  * write "importScript('User:Mizusumashi/Script/ReferencePopUp.js');"
//    in "User:_ACOUNT_/monobook.js"("_ACOUNT_" is your WIki acount).
//  * This script need addOnloadHook()
//    in http://upload.wikimedia.org/skins/common/wikibits.js.

// for Firefox extension "Greasemonkey"
//
// ==UserScript==
// @name           WikipediaReferencePopUp
// @namespace      mizusumashi
// @include        http://*.wikipedia.org/*
// ==/UserScript==

hrefregex= new RegExp('');
hrefregex.compile('http://([^#]+)#(.+)');
refregex1 = new RegExp('');
refregex1.compile('^(<span [^>]+>)?(<b><a [^>]+>\\^</a></b>|\\^( <a [^>]+><sup><i><b>[^<]+</b></i></sup></a>)+) ', 'i');
refregex2 = new RegExp('');
refregex2.compile('<[^>]+>', 'g');
refregex3 = new RegExp('');
refregex3.compile('<span [^>]+>(<a [^>]+><b>.+</b></a></span>&nbsp;)+', 'i');
templateregex = new RegExp('');
templateregex.compile('^<a [^>]+><b>.+</b></a>$', 'i');

function isTemplate(foot)
{
    var ret = templateregex.test(foot.innerHTML);
    return ret;
}

function referencePopUp()
{
    if(navigator.appName == "Microsoft Internet Explorer"){
        return;
    }

    var arrayOfReference = document.getElementsByClassName('reference');

    for( var i = 0; i < arrayOfReference.length; i++){
        arrayOfReference[i].firstChild.href.match(hrefregex);
        
        var foot = document.getElementById(RegExp.$2);
        if(foot){
            if(! isTemplate(foot)){
                text = foot.innerHTML;
                text = text.replace(refregex1, '');
                text = text.replace(refregex2, '');
            } else { // [[Template:Note label]]
                text = foot.parentNode.innerHTML;
                text = text.replace(refregex3, '');
                text = text.replace(refregex2, '');
            }
        } else {
            text = 'ERROR: There is no footnote.';
        }

        arrayOfReference[i].firstChild.title = text;
    }
}

addOnloadHook(referencePopUp); // in Wikipedia user script
// referencePopUp(); // in Firefox extension "Greasemonkey"