跳至內容

MediaWiki:Common.js/zh

頁面內容不支援其他語言。
維基新聞,自由的新聞源

/* 所有用戶在加載任何頁面時,這裏的JavaScript都會加載

  • /

/*

慶祝標誌

  • /

/* jQuery( function( $ ) {

   var plogo = document.getElementById("p-logo");
   var url = "//upload.wikimedia.org/wikipedia/commons/" + wgUVS("e/eb/Wikinews-logo-zh-4000.png", "e/eb/Wikinews-logo-zh-4000.png");
   if ( navigator.appName == "Microsoft Internet Explorer" ) {
       if ( navigator.appVersion.match(/MSIE [78].0/) == null ) {
           plogo.getElementsByTagName("span")[0].style.filter = "progid:DXImageTransform."
               + "Microsoft.AlphaImageLoader(" + url + ")";
       }
       else {
           var a = plogo.firstChild;
           a.style.backgroundImage = "url(" + url + ")";
       }
   }
   else {
       var a = plogo.getElementsByTagName("A")[0];
       a.style.backgroundImage = "url(" + url + ")";
   }

} );

  • /

/*

輔助處理

  • /

//功能設定 if(!window.JSConfig){var JSConfig={};} JSConfig.isEdit0=false; //設置是否顯示編輯首段按鈕 JSConfig.editSectionLink='right';//設置編輯按鈕是否在右側

// 移動元素 function elementMoveto(node, refNode, pos){//默認位置為refNode前 if(node && refNode){ var parent=refNode.parentNode; if (pos && pos=='after') {refNode=refNode.nextSibling;} try { if(refNode){ parent.insertBefore(node, refNode); }else{ parent.appendChild(node); } } catch (DOMException) {} } } //創建元素 function createElement(tag,children,props){ var element = document.createElement(tag); if(!(children instanceof Array)){children=[children];} for(var i=0;i<children.length;i++){ var child=children[i]; if(typeof child=='string'){child=document.createTextNode(child);} if(child){element.appendChild(child);} } if(typeof props=='object'){ for(var k in props){ switch(k){ case 'styles': var styles=props.styles; for(var s in styles){element.style[s]=styles[s];} break; case 'events': var events=props.events; for(var e in events){ addHandler(element,e,events[e]); } break; case 'class': element.className=props[k];break; default: element.setAttribute(k,props[k]); } } } return element; }

//wiki URL var wgProjectURL={ en:'//en.wikipedia.org/',de:'//de.wikipedia.org/',fr:'//fr.wikipedia.org/', pl:'//pl.wikipedia.org/',ja:'//ja.wikipedia.org/',it:'//it.wikipedia.org/', nl:'//nl.wikipedia.org/',pt:'//pt.wikipedia.org/',es:'//es.wikipedia.org/', sv:'//sv.wikipedia.org/',//僅列前十名其它語言百科 m:'//meta.wikimedia.org/',b:'//zh.wikibooks.org/',q:'//zh.wikiquote.org/', n:'//zh.wikinews.org/',wikt:'//zh.wiktionary.org/',mw:'//www.mediawiki.org/' }; /**

* 将页面名称转换为URL
*
* @param page 页面名称
* @param paras 附加后缀对象,用空对象{}做参数可以取得源码
*/

function getWikiPath(page,paras){ var reg=/^[a-z]+:/; var pre=page.match(reg); pre = pre && wgProjectURL[pre[0].replace(/:$/,)]; if (pre) {page=page.replace(reg,);} else {pre=;} var url = pre + mw.config.get('wgScript') + '?title=' + encodeURI( page.replace( ' ', '_' ) ); if(typeof paras=='object'){ paras.ctype=paras.ctype||'text'; paras.dontcountme=paras.dontcountme||'s'; paras.action=paras.action||'raw'; for(var k in paras){url += '&' + k + '=' + paras[k]; } } return url; }

//JS、CSS導入模塊 importedURLs = {}; //用以保證腳本和樣式只載入一次 function importScript( page ) { var src= /^https?:\/\//.test(page) ? page : getWikiPath(page,{'ctype':'text/javascript'}); if( importedURLs[src] ) { return; } importedURLs[src] = true; var scriptElem = createElement( 'script',null,{'src':src,'type':'text/javascript'} ); document.getElementsByTagName( 'head' )[0].appendChild( scriptElem ); } function importStylesheet( page ) { var sheet= /^https?:\/\//.test(page) ? page : getWikiPath(page,{'ctype':'text/css'}); if( importedURLs[sheet] ) { return; } importedURLs[sheet] = true; var styleElem = createElement( 'style', ['@import "'+sheet+'";'], {'type':'text/css'} ); document.getElementsByTagName( 'head' )[0].appendChild( styleElem ); }

/*

新聞評論頁面

  • /

importScript("MediaWiki:Comments.js");

/*

中文轉換處理

  • /

//設置中文語言頁 var htmlE=document.documentElement; htmlE.setAttribute("xml:lang",mw.config.get('wgUserLanguage'));

//返回繁簡字串 function wgULS(cn,tw,hk,sg,zh){//保證每一語言有值 return {'zh-cn':cn||sg,'zh-sg':sg||cn,'zh-tw':tw||hk,'zh-hk':hk||tw,'zh':zh||cn||tw||hk||sg,'zh-hans':cn||sg,'zh-hant':tw||hk}[mw.config.get('wgUserLanguage')]; }

/** lan enhanced Conversion ***********************************************************

*
*  Description: 根據當前用戶語言顯示相應內容
*  Maintainers: Fdcn@zh.wikipedia
*  Remakrs: Removed by Waihorace due to bug on IE
*/

/*

段落編輯連結

  • /

//JSConfig.isEdit0 設置是否出現「編輯首段」按鈕 //對不需要編輯首段的頁面,還可在頁面中加 Template:NoEdit 模板來禁用。 //JSConfig.editSectionLink 設置「編輯」按鈕的位置 if (mw.config.get('wgIsArticle') && mw.config.get('wgAction') == "view") { //增加編輯首段按鈕 jQuery( function( $ ) { if(!JSConfig.isEdit0||(document.getElementById&&document.getElementById('no-edit-0'))){return;} var caEdit=document.getElementById&&document.getElementById('ca-edit'); if (!caEdit){return;} var linkAttributes={ 'href':caEdit.firstChild.href + '&section=0', 'title':wgULS('編輯正文所有標題之前的文字(通常稱為首段或導言)','編輯正文所有標題之前的文字(通常稱首段或導言)'), 'accesskey':'0' };

//增加0按鈕標籤 var caEdit0 = createElement( 'li', [createElement('A',['0'],linkAttributes)], {id:'ca-edit-0'} ); caEdit.className = 'istalk'; elementMoveto(caEdit0,caEdit,"after");

//增加條目標題下的「編輯首段」按鈕 var editsection0= createElement( 'span', ['[',createElement('A',[wgULS('編輯首段','編輯首段')],linkAttributes),']'], {'class':'editsection'} ); var siteSub=document.getElementById&&document.getElementById('siteSub'); elementMoveto( editsection0 , siteSub.firstChild ); }); }

/*

取消修訂編輯摘要修正

  • /

/**

 fix edit summary prompt for undo
 this code fixes the fact that the undo function combined with the "no edit summary prompter" causes problems if leaving the edit summary unchanged
 this was added by en:User:Deskana, code by en:User:Tra
*/

jQuery( function( $ ) { var autoSummary=document.getElementsByName('wpAutoSummary')[0]; if (document.location.search.indexOf("undo=") != -1 && autoSummary) { autoSummary.value=; } });

/*

Tabs

  • /

importScript('MediaWiki:Tabs.js');

/*

WikiMiniAtlas世界地圖

  • /

/** WikiMiniAtlas *******************************************************

  *
  *  描述:WikiMiniAtlas是一個popup而可點選與拖曳的世界地圖。
  *               這個腳本將會讓所有的經緯度標示中顯示WikiMiniAtlas的popup開啟按鈕。
  *               由於被許多計畫使用,因此腳本放置在元維基中。
  *               更多資訊請詳見Meta:WikiMiniAtlas。
  *  創建者:en:User:Dschwen
  */

importScript('m:MediaWiki:Wikiminiatlas.js'); /*

Wikimedia媒體播放器

  • /

/** MediaWiki media player *******************************************************

 *
 *  Description: A Java player for in-browser playback of media files.
 *  Created by: en:User:Gmaxwell
 */

importScript('Mediawiki:Wikimediaplayer.js');

/**

* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
* @rev 6
*/

mw.loader.using( ['mediawiki.util'], function () {

   var extraCSS = mw.util.getParamValue( 'withCSS' ),
       extraJS = mw.util.getParamValue( 'withJS' );
   if ( extraCSS ) {
       if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {
           importStylesheet( extraCSS );
       } else {
           mw.notify( '只允许从MediaWiki名字空间加载。', { title: '无效的withCSS值' } );
       }
   }
   if ( extraJS ) {
       if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {
           importScript( extraJS );
       } else {
           mw.notify( '只允许从MediaWiki名字空间加载。', { title: '无效的withJS值' } );
       }
   }

});