跳至內容

MediaWiki:Common.js

文出維基大典
本版日期︰二〇〇八年八月九日 (六) 〇三時一三分;作者︰Itsmine

註:重取頁面,文方新焉。

  • Firefox / Safari:Shift 並點 重新載入,或合鍵 Ctrl-F5Ctrl-R(Mac 為 ⌘-R)。
  • Google Chrome:Ctrl-Shift-R(Mac為 ⌘-Shift-R)。
  • Internet Explorer:Ctrl 並點 重新整理,或合鍵 Ctrl-F5
  • Opera:須至 Tools → Preferences 清謄本(Mac 為 Opera → Preferences)。
// BEGIN Configuration for "star" logo in front of interwiki links to Featured Articles
 
 /** 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 = "他山之玉";
 
 // linkFA_bullet and linkFA_style werden nur für cologneblue, nostalgia and standard verwendet,
 // für monobook und simple siehe [[MediaWiki:Common.css]]
 
 /** image to use instead of the standard bullet (for cologneblue, nostalgia and standard */
 var linkFA_bullet = "/media/wikipedia/commons/d/d0/Monobook-bullet-star-transparent.png";
 
 /** style to use for the linkFA_bullet img */
 var linkFA_style = "margin-right: 0.2em;";
 
 /** 
 * star logo for featured articles in other languages,
 * see Template:Link_FA and MediaWiki:Common.css
 */
 function linkFA() {
     // early exit when disabled
     if (!linkFA_enabled) return;
 
     // skins need to be treated differently
     if (skin == "monobook" || skin == "simple") {
         newer();
     } 
     else if (skin == "cologneblue" || skin == "nostalgia" || skin == "standard") {
         older();
     } 
 
     /** skin == "monobook" || skin == "simple" */
     function newer() {
         // links are to replaced in p-lang only
         var pLang = document.getElementById("p-lang");
         if (!pLang) return;
         var lis = pLang.getElementsByTagName("li");
         for (var i = 0; i < lis.length; i++) {
             var li = lis[i];
             // only links with a corresponding Link_FA template are interesting
             if (!document.getElementById(li.className + "-fa"))   continue;
             // additional class so the template can be hidden with CSS
             li.className += " FA";
             // change title
             li.title = linkFA_description;
         }
     }
 
     /** skin == "cologneblue" || skin == "nostalgia" || skin == "standard" */
     function older() {
         // these root elements can contain FA-links
         var rootIds = new Array("topbar", "footer");
         for (var i=0; i<rootIds.length; i++) {
             var rootId  = rootIds[i];
             var root    = document.getElementById(rootId);
             if (!root)  continue;
 
             // if the root exists, try to decorate all the links within
             var links   = root.getElementsByTagName("a");
             for (var j=0; j<links.length; j++) {
                 var link    = links[j];
                 decorate(link);
             }
         }
     }
 
     /** id necessary, modify a link to show the FA-star (older) */
     function decorate(link) {
         // exit if not a FA-link
         var lang    = link.title.split(":")[0]; // not precise enough
         var fa      = document.getElementById("interwiki-" + lang + "-fa");
         if (!fa)    return;
         // 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",     linkFA_bullet);
         img.setAttribute("alt",     linkFA_description);
         img.setAttribute("style",   linkFA_style);
 
         // decorate the link with the image
         link.appendChild(img);
         link.appendChild(link.removeChild(link.firstChild));
         link.setAttribute("title", linkFA_description);
     }
 }
 // aOnloadFunctions[aOnloadFunctions.length] = linkFA;
 addOnloadHook(linkFA);
 
 // END Configuration for "star" logo in front of interwiki links to Featured Articles

/** Extra toolbar options ******************************************************
  *
  *  Description: UNDOCUMENTED
  *  Maintainers: [[:en:User:MarkS]]?, [[:en:User:Voice of All]], [[:en:User:R. Koot]]
  */
 
 //This is a modified copy of a script by User:MarkS for extra features added by User:Voice of All.
 // This is based on the original code on Wikipedia:Tools/Editing tools
 // To disable this script, add <code>mwCustomEditButtons = [];<code> to [[Special:Mypage/monobook.js]]
 
 if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/c/c8/Button_redirect.png",
     "speedTip": "渡",
     "tagOpen": "#REDIRECT [[",
     "tagClose": "]]",
     "sampleText": "入文"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/c/c9/Button_strike.png",
     "speedTip": "刪字線",
     "tagOpen": "<s>",
     "tagClose": "</s>",
     "sampleText": "去此字"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/1/13/Button_enter.png",
     "speedTip": "易行",
     "tagOpen": "<br />",
     "tagClose": "",
     "sampleText": ""};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/8/80/Button_upper_letter.png",
     "speedTip": "上標",
     "tagOpen": "<sup>",
     "tagClose": "</sup>",
     "sampleText": "上標之字"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/7/70/Button_lower_letter.png",
     "speedTip": "下標",
     "tagOpen": "<sub>",
     "tagClose": "</sub>",
     "sampleText": "下標之字"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/5/58/Button_small.png",
     "speedTip": "小",
     "tagOpen": "<small>",
     "tagClose": "</small>",
     "sampleText": "小字"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/3/34/Button_hide_comment.png",
     "speedTip": "陰評",
     "tagOpen": "<!-- ",
     "tagClose": " -->",
     "sampleText": "評"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/1/12/Button_gallery.png",
     "speedTip": "以圖入文",
     "tagOpen": "\n<gallery>\n",
     "tagClose": "\n</gallery>",
     "sampleText": "Image:Example.jpg|Caption1\nImage:Example.jpg|Caption2"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/f/fd/Button_blockquote.png",
     "speedTip": "引文",
     "tagOpen": "<blockquote>\n",
     "tagClose": "\n</blockquote>",
     "sampleText": "引文"};
 
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/en/6/60/Button_insert_table.png",
     "speedTip": "以表入文",
     "tagOpen": '{| class="wikitable"\n|-\n',
     "tagClose": "\n|}",
     "sampleText": "! header 1\n! header 2\n! header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3"};

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "/media/wikipedia/commons/7/79/Button_reflink.png",
     "speedTip": "示據",
     "tagOpen": "<ref>",
     "tagClose": "</ref>",
     "sampleText": "書據於此"};

 }
 
 /*</nowiki>*/

/** WikiMiniAtlas *******************************************************
   *
   *  Description: WikiMiniAtlas is a popup click and drag world map.
   *               This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
   *               The script itself is located on meta because it is used by many projects.
   *               See [[Meta:WikiMiniAtlas]] for more information. 
   *  Created by: [[:en:User:Dschwen]]
   */
 
 document.write('<script type="text/javascript" src="' 
     + 'http://meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js' 
     + '&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400"></script>');

//==============================================================================
//*** Fügt der Suche weitere Suchengines hinzu (kopiert aus eswp)

includePage("MediaWiki:SpezialSuche.js");

/** IE 6 Z-index bug workaround for anonnotice **************************
   *
   *  Description: This implements a work around for the Z-index bug found in Internet Explorer.
   *               It correctly places the anon notice on the page, even under IE6.
   *               See this Google search for more information about the bug:
   *               http://www.google.com/search?hl=en&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&hs=q74&q=z-index+ie6+bug&btnG=Search
   *  Created by: [[:en:User:Gmaxwell]]
   */
 addOnloadHook((function (){
     if (wgUserName == null) {
 
         var messageEdu=new Array();
            messageEdu[0]='<a href="/wiki/Wikipedia:Researching_with_Wikipedia" title="Wikipedia:Researching with Wikipedia">Learn&nbsp;more&nbsp;about&nbsp;using&nbsp;Wikipedia&nbsp;for&nbsp;research</a>';
            messageEdu[1]='<a href="/wiki/Wikipedia:Ten_things_you_may_not_know_about_Wikipedia" title="Wikipedia:Ten things you may not know about Wikipedia">Ten&nbsp;things&nbsp;you&nbsp;may&nbsp;not&nbsp;know&nbsp;about&nbsp;Wikipedia</a>';
            messageEdu[2]='<a href="/wiki/Wikipedia:Ten_things_you_may_not_know_about_images_on_Wikipedia" title="Wikipedia:Ten things you may not know about images on Wikipedia">Ten&nbsp;things&nbsp;you&nbsp;may&nbsp;not&nbsp;know&nbsp;about&nbsp;images&nbsp;on&nbsp;Wikipedia</a>';
            messageEdu[3]='<a href="/wiki/Wikipedia:Citing_Wikipedia" title="Wikipedia:Citing Wikipedia">Learn&nbsp;more&nbsp;about&nbsp;citing&nbsp;Wikipedia</a>';
            messageEdu[4]='Have&nbsp;questions?&nbsp;<a href="/wiki/Wikipedia:Questions" title="Wikipedia:Questions">Find&nbsp;out&nbsp;how&nbsp;to&nbsp;ask&nbsp;questions&nbsp;and&nbsp;get&nbsp;answers.</a>';
            messageEdu[5]='<a href="/wiki/Wikipedia:Basic_navigation" title="Wikipedia:Basic navigation">Find&nbsp;out&nbsp;more&nbsp;about&nbsp;navigating&nbsp;Wikipedia&nbsp;and&nbsp;finding&nbsp;information</a>';
            messageEdu[6]='<a href="/wiki/Wikipedia:Contributing_to_Wikipedia" title="Wikipedia:Contributing to Wikipedia">Interested&nbsp;in&nbsp;contributing&nbsp;to&nbsp;Wikipedia?</a>';
         var whichMessageEdu = Math.floor(Math.random()*(messageEdu.length));
 
 
/**         document.getElementById("contentSub").innerHTML +='<div style="position:absolute; z-index:100; right:100px; top:0px;" class="metadata" id="anontip"><div style="text-align:right; font-size:87%">•&nbsp;<i>' + messageEdu[whichMessageEdu] + '</i>&nbsp;•</div></div>';
 */
     }
 }));
 
/** 
  * Correctly handle PNG transparency in Internet Explorer 6.
  * http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.
  *  
  * Adapted for Wikipedia by Remember_the_dot and Edokter.
  *  
  * http://homepage.ntlworld.com/bobosola/pnginfo.htm states "This page contains more information for
  * the curious or those who wish to amend the script for special needs", which I take as permission to
  * modify or adapt this script freely. I release my changes into the public domain.
  */  
 
function PngFix()
{
    try
    {
        if (!document.body.filters)
        {
            window.PngFixDisabled = true
        }
    }
    catch (e)
    {
        window.PngFixDisabled = true
    }
    if (!window.PngFixDisabled)
    {
        var documentImages = document.images
        var documentCreateElement = document.createElement
        var funcEncodeURI = encodeURI
 
        for (var i = 0; i < documentImages.length;)
        {
            var img = documentImages[i]
            var imgSrc = img.src
 
            if (imgSrc.substr(imgSrc.length - 3).toLowerCase() == "png" && !img.onclick)
            {
                if (img.useMap)
                {
                    img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + encodeURI(imgSrc) + "')"
                    img.src = "/media/wikipedia/commons/c/ce/Transparent.gif"
                    i++
                }
                else
                {
                    var outerSpan = documentCreateElement("span")
                    var innerSpan = documentCreateElement("span")
                    var outerSpanStyle = outerSpan.style
                    var innerSpanStyle = innerSpan.style
                    var imgCurrentStyle = img.currentStyle
 
                    outerSpan.id = img.id
                    outerSpan.title = img.title
                    outerSpan.className = img.className
                    outerSpanStyle.backgroundImage = imgCurrentStyle.backgroundImage
                    outerSpanStyle.borderWidth = imgCurrentStyle.borderWidth
                    outerSpanStyle.borderStyle = imgCurrentStyle.borderStyle
                    outerSpanStyle.borderColor = imgCurrentStyle.borderColor
                    outerSpanStyle.display = "inline-block"
                    outerSpanStyle.fontSize = "0"
                    outerSpanStyle.verticalAlign = "middle"
                    if (img.parentElement.href) outerSpanStyle.cursor = "hand"
 
                    innerSpanStyle.width = "1px"
                    innerSpanStyle.height = "1px"
                    innerSpanStyle.display = "inline-block"
                    innerSpanStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + funcEncodeURI(imgSrc) + "')"
 
                    outerSpan.appendChild(innerSpan)
                    img.parentNode.replaceChild(outerSpan, img)
                }
            }
            else
            {
                i++
            }
        }
    }
}
 
if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.substr(22, 1) == "6")
{
    window.attachEvent("onload", PngFix)
}
 
/**
  * Remove need for CSS hacks regarding MSIE and IPA.
  */
 
if(navigator.userAgent.indexOf("MSIE") != -1 && document.createStyleSheet) {
   document.createStyleSheet().addRule('.IPA', 'font-family: "Doulos SIL", "Charis SIL", Gentium, "DejaVu Sans", Code2000, "TITUS Cyberbit Basic", "Arial Unicode MS", "Lucida Sans Unicode", "Chrysanthi Unicode";');
}

/** Internet Explorer bug fix **************************************************
  *
  *  Description: Fixes IE horizontal scrollbar bug
  *  Maintainers: [[:en:User:Tom-]]?
  */
 
 if (navigator.appName == "Microsoft Internet Explorer" && document.compatMode == "CSS1Compat")
 {
   var oldWidth;
   var docEl = document.documentElement;
 
   function fixIEScroll()
   {
     if (!oldWidth || docEl.clientWidth > oldWidth)
       doFixIEScroll();
     else
       setTimeout(doFixIEScroll, 1);
 
     oldWidth = docEl.clientWidth;
   }
 
   function doFixIEScroll() {
     docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
   }
 
   document.attachEvent("onreadystatechange", fixIEScroll);
   attachEvent("onresize", fixIEScroll);
 }

/* Test if an element has a certain class **************************************
  *
  * Description: Uses regular expressions and caching for better performance.
  * Maintainers: [[:en:User:Mike Dillon]], [[:en:User:R. Koot]], [[:en:User:SG]]
  */
 
 var hasClass = (function () {
     var reCache = {};
     return function (element, className) {
         return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
     };
 })();

 /** Import module *************************************************************
  *
  *  Description: Includes a raw wiki page as javascript or CSS, 
  *               used for including user made modules.
  *  Maintainers: [[User:AzaToth]]
  */
 importedScripts = {}; // object keeping track of included scripts, so a script ain't included twice
 function importScript( page ) {
     if( importedScripts[page] ) {
         return;
     }
     importedScripts[page] = true;
     var url = wgScriptPath
             + '/index.php?title='
             + encodeURIComponent( page.replace( / /g, '_' ) )
             + '&action=raw&ctype=text/javascript';
     var scriptElem = document.createElement( 'script' );
     scriptElem.setAttribute( 'src' , url );
     scriptElem.setAttribute( 'type' , 'text/javascript' );
     document.getElementsByTagName( 'head' )[0].appendChild( scriptElem );
 }
 
 function importStylesheet( page ) {
     var sheet = '@import "'
               + wgScriptPath
               + '/index.php?title='
               + encodeURIComponent( page.replace( / /g, '_' ) )
               + '&action=raw&ctype=text/css";'
     var styleElem = document.createElement( 'style' );
     styleElem.setAttribute( 'type' , 'text/css' );
     styleElem.appendChild( document.createTextNode( sheet ) );
     document.getElementsByTagName( 'head' )[0].appendChild( styleElem );
 }

 /** Wiktionary Change Color*************************************************************
*/
function wiktionaryChangeColor() {
	var a = document.getElementsByTagName("A");
	for(var i = 0;i<a.length;i++){
		t = /^維基大典:維基爾雅\//.exec(a[i].title);
		if (t){
			a[i].style.color = "green";
		}
	}
}
addOnloadHook(wiktionaryChangeColor);

 /** Interwiki*************************************************************
*/
function mainPageAppendCompleteListLink() {
    addPortletLink('p-lang', 'http://meta.wikimedia.org/wiki/List_of_Wikipedias',
                   '一覽', 'interwiki-completelist', '縱橫維基')
}
 
if ((wgTitle == '卷首' && wgNamespaceNumber == 0) || (wgTitle == '維基大典' && wgNamespaceNumber == 100)) {
    addOnloadHook(mainPageAppendCompleteListLink);
}