跳至內容

MediaWiki:Common.js

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

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

  • 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") || li.className.indexOf("badge-featuredarticle") !== -1)   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);
     }
 }
 $(linkFA);

// END Configuration for "star" logo in front of interwiki links to Featured Articles

/**
 * WikiMiniAtlas is a popup click and drag world map.
 * See [[meta:WikiMiniAtlas]] for more information.
 * Maintainers: [[w:User:Dschwen]]
 */
mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );

/**
  * 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);
     };
 })();


 /** 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";
    }
  }
}
$(wiktionaryChangeColor);

 /** Interwiki*************************************************************
*/
function mainPageAppendCompleteListLink() {
    addPortletLink('p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
                   '一覽', 'interwiki-completelist', '縱橫維基')
}

 if ((wgTitle == '卷首' && wgNamespaceNumber == 4) || (wgTitle == '維基大典:卷首' && wgNamespaceNumber == 4) || (wgTitle == '維基大典' && wgNamespaceNumber == 100)) {
    $(mainPageAppendCompleteListLink);
}