查看“︁MediaWiki:Common.js”︁的源代码
←
MediaWiki:Common.js
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
此页面为本wiki上的软件提供界面文本,并受到保护以防止滥用。 如欲修改所有wiki的翻译,请访问
translatewiki.net
上的MediaWiki本地化项目。
您无权编辑此JavaScript页面,因为编辑此页面可能会影响所有访问者。
您可以查看和复制此页面的源代码。
/* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */ /* Any JavaScript here will be loaded for all users on every page load. */ /** * Collapsible tables * * Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]]. * @maintainer [[User:R. Koot]] (on Wikipedia) */ var autoCollapse = 2; var collapseCaption = '折叠'; var expandCaption = '展开'; function hasClass( element, className ) { var Classes = element.className.split( " " ); for ( var i = 0; i < Classes.length; i++ ) { if ( Classes[i] == className ) { return true; } } return false; } function collapseTable( tableIndex ) { var i; var Button = document.getElementById( 'collapseButton' + tableIndex ); var Table = document.getElementById( 'collapsibleTable' + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.getElementsByTagName( 'tr' ); if ( Button.firstChild.data == collapseCaption ) { for ( i = 1; i < Rows.length; i++ ) { Rows[i].style.display = 'none'; } Button.firstChild.data = expandCaption; } else { for ( i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; } } function createCollapseButtons() { var i; var tableIndex = 0; var NavigationBoxes = {}; var Tables = document.getElementsByTagName( 'table' ); for ( i = 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], 'collapsible' ) ) { NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex ); var Button = document.createElement( 'span' ); var ButtonLink = document.createElement( 'a' ); var ButtonText = document.createTextNode( collapseCaption ); Button.style.styleFloat = 'right'; Button.style.cssFloat = 'right'; Button.style.fontWeight = 'normal'; Button.style.textAlign = 'right'; Button.style.width = '6em'; ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex ); ButtonLink.setAttribute( 'href', 'javascript:collapseTable(' + tableIndex + ');' ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( '[' ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( ']' ) ); var Header = Tables[i].getElementsByTagName( 'tr' )[0].getElementsByTagName( 'th' )[0]; /* only add button and increment count if there is a header row to work with */ if (Header) { Header.insertBefore( Button, Header.childNodes[0] ); tableIndex++; } } } for ( i = 0; i < tableIndex; i++ ) { if ( hasClass( NavigationBoxes[i], 'collapsed' ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], 'autocollapse' ) ) ) { collapseTable( i ); } } } $( createCollapseButtons ); /** * Dynamic Navigation Bars (experimental) * * See [[Wikipedia:NavFrame]]. */ // set up the words in your language var NavigationBarHide = '[' + collapseCaption + ']'; var NavigationBarShow = '[' + expandCaption + ']'; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled function toggleNavigationBar(indexNavigationBar) { var NavChild; var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar); var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == NavigationBarHide) { for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( hasClass( NavChild, 'NavPic' ) ) { NavChild.style.display = 'none'; } if ( hasClass( NavChild, 'NavContent') ) { NavChild.style.display = 'none'; } } NavToggle.firstChild.data = NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) { for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if (hasClass(NavChild, 'NavPic')) { NavChild.style.display = 'block'; } if (hasClass(NavChild, 'NavContent')) { NavChild.style.display = 'block'; } } NavToggle.firstChild.data = NavigationBarHide; } } // adds show/hide-button to navigation bars function createNavigationBarToggleButton(){ var indexNavigationBar = 0; // iterate over all < div >-elements var divs = document.getElementsByTagName( 'div' ); for (var i = 0; NavFrame = divs[i]; i++) { // if found a navigation bar if ( hasClass(NavFrame, 'NavFrame' )) { indexNavigationBar++; var NavToggle = document.createElement('a'); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); var NavToggleText = document.createTextNode(NavigationBarHide); for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) { if (NavChild.style.display == 'none') { NavToggleText = document.createTextNode(NavigationBarShow); break; } } } NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) for(var j=0; j < NavFrame.childNodes.length; j++) { if (hasClass(NavFrame.childNodes[j], 'NavHead')) { NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } } $( createNavigationBarToggleButton ); // Shuffle for election candidates function dshuf() { var shufsets = {}; var rx = new RegExp('dshuf' + '\\s+(dshufset\\d+)', 'i'); var divs = document.getElementsByTagName('div'); var i = divs.length; while (i--) { if (rx.test(divs[i].className)) { if (typeof shufsets[RegExp.$1] === 'undefined') { shufsets[RegExp.$1] = {}; shufsets[RegExp.$1].inner = []; shufsets[RegExp.$1].member = []; } shufsets[RegExp.$1].inner.push({ key: Math.random(), html: divs[i].innerHTML }); shufsets[RegExp.$1].member.push(divs[i]); } } for (shufset in shufsets) { shufsets[shufset].inner.sort(function(a, b) { return a.key - b.key; }); i = shufsets[shufset].member.length; while (i--) { shufsets[shufset].member[i].innerHTML = shufsets[shufset].inner[i].html; shufsets[shufset].member[i].style.display = 'block'; } } } $(dshuf); /** * JSconfig * * Global configuration options to enable/disable and configure * specific script features from [[MediaWiki:Common.js]] and * [[MediaWiki:Monobook.js]] * This framework adds config options (saved as cookies) to [[Special:Preferences]] * For a more permanent change you can override the default settings in your * [[Special:Mypage/monobook.js]] * for Example: JSconfig.keys[loadAutoInformationTemplate] = false; * * Maintainer: [[User:Dschwen]] */ var JSconfig = { prefix : 'jsconfig_', keys : {}, meta : {}, // // Register a new configuration item // * name : String, internal name // * default_value : String or Boolean (type determines configuration widget) // * description : String, text appearing next to the widget in the preferences // * prefpage : Integer (optional), section in the preferences to insert the widget: // 0 : User profile // 1 : Skin // 2 : Math // 3 : Files // 4 : Date and time // 5 : Editing // 6 : Recent changes // 7 : Watchlist // 8 : Search // 9 : Misc // // Access keys through JSconfig.keys[name] // registerKey : function( name, default_value, description, prefpage ) { if( typeof(JSconfig.keys[name]) === 'undefined' ) JSconfig.keys[name] = default_value; else { // all cookies are read as strings, // convert to the type of the default value switch( typeof(default_value) ) { case 'boolean' : JSconfig.keys[name] = ( JSconfig.keys[name] == 'true' ); break; case 'number' : JSconfig.keys[name] = JSconfig.keys[name]/1; break; } } JSconfig.meta[name] = { 'description' : description, 'page' : prefpage || 0, 'default_value' : default_value }; }, readCookies : function() { var cookies = document.cookie.split("; "); var p =JSconfig.prefix.length; var i; for( var key in cookies ) { if( cookies[key].substring(0,p) == JSconfig.prefix ) { i = cookies[key].indexOf('='); alert( cookies[key] + ',' + key + ',' + cookies[key].substring(p,i) ); JSconfig.keys[cookies[key].substring(p,i)] = cookies[key].substring(i+1); } } }, writeCookies : function() { for( var key in JSconfig.keys ) document.cookie = JSconfig.prefix + key + '=' + JSconfig.keys[key] + '; path=/; expires=Thu, 2 Aug 2009 10:10:10 UTC'; }, evaluateForm : function() { var w_ctrl,wt; //alert('about to save JSconfig'); for( var key in JSconfig.meta ) { w_ctrl = document.getElementById( JSconfig.prefix + key ); if( w_ctrl ) { wt = typeof( JSconfig.meta[key].default_value ); switch( wt ) { case 'boolean' : JSconfig.keys[key] = w_ctrl.checked; break; case 'string' : JSconfig.keys[key] = w_ctrl.value; break; } } } JSconfig.writeCookies(); return true; }, setUpForm : function() { var key; var prefChild = document.getElementById('preferences'); if( !prefChild ) return; prefChild = prefChild.childNodes; // // make a list of all preferences sections // var tabs = []; var len = prefChild.length; for( key = 0; key < len; key++ ) { if( prefChild[key].tagName && prefChild[key].tagName.toLowerCase() == 'fieldset' ) tabs.push(prefChild[key]); } // // Create Widgets for all registered config keys // var w_div, w_label, w_ctrl, wt; for( key in JSconfig.meta ) { w_div = document.createElement( 'div' ); w_label = document.createElement( 'LABEL' ); w_label.appendChild( document.createTextNode( JSconfig.meta[key].description ) ); w_label.htmlFor = JSconfig.prefix + key; wt = typeof( JSconfig.meta[key].default_value ); w_ctrl = document.createElement( 'input' ); w_ctrl.id = JSconfig.prefix + key; // before insertion into the DOM tree switch( wt ) { case 'boolean' : w_ctrl.type = 'checkbox'; break; case 'string' : w_ctrl.type = 'text'; break; } w_div.appendChild( w_label ); w_div.appendChild( w_ctrl ); tabs[JSconfig.meta[key].page].appendChild( w_div ); // after insertion into the DOM tree switch( wt ) { case 'boolean' : w_ctrl.defaultChecked = w_ctrl.checked = JSconfig.keys[key]; break; case 'string' : w_ctrl.defaultValue = w_ctrl.value = JSconfig.keys[key]; break; } } $('#preferences').parent().on( 'submit', JSconfig.evaluateForm ); } }; JSconfig.readCookies(); $(JSconfig.setUpForm); if(location.href.indexOf('rtl=1') !== -1) { mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:Gadget-rtl.css&action=raw&ctype=text/css', 'text/css'); } // Import local or interwiki page as script // @deprecated since MediaWiki 1.17: Use mw.loader.load(url) or $.getScript(url, callback) instead. function importScript(page, lang) { var query = '?title=' + encodeURIComponent(page.replace(' ','_')) + '&action=raw&ctype=text/javascript'; if (lang) { mw.loader.load('//' + lang + '.wikipedia.org/w/index.php' + query); } else { mw.loader.load('//meta.wikimedia.org' + mw.config.get( 'wgScript' ) + query); } } ( function () { var conf = mw.config.get( [ 'wgCanonicalSpecialPageName', 'wgUserGroups', 'wgPageName', 'wgUserName' ] ); // Multilingual description.js from commons mw.loader.load('//commons.wikimedia.org/w/index.php?title=MediaWiki:Gadget-LanguageSelect.js&action=raw&ctype=text/javascript'); // Tabs mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:Tabs.js&action=raw&ctype=text/javascript'); // Handle template:InterProject mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:InterProject.js&action=raw&ctype=text/javascript'); // Help:Diff if ( conf.wgPageName === 'Help:Diff' ) { mw.loader.load( 'mediawiki.action.history.diff' ); } /** * Remove "Wikimedia Fellowships/Project Ideas/" prefix on few fellowship pages * * Maintainer: [[en:User:Jarry1250]] */ if ($.inArray(conf.wgPageName, ['Wikimedia_Fellowships/Process', 'Wikimedia_Fellowships/Project_Ideas', 'Wikimedia_Fellowships/Project_Ideas/test']) > -1) { $( 'a.CategoryTreeLabel' ).text( function( i, current ) { return current.replace( 'Wikimedia Fellowships/Project Ideas/', '' ); } ); } /** * Remove "Grants:IEG/" prefix on a few IEG pages * * Maintainer: [[en:User:Jarry1250]] */ if ($.inArray(conf.wgPageName, ['Grants:IEG', 'Grants:IEG/Committee/Workroom/Review', 'Grants:IEG/Committee_Members/Working_groups']) > -1) { $( 'a.CategoryTreeLabel' ).text( function( i, current ) { return current.replace( 'IEG/', '' ); } ); } /** * IE fixes as required * (includes hlist fixup for IE) */ mw.loader.using( 'jquery.client', function() { if ( $.client.profile().name === 'msie' ) { mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Common.js/IEFixes.js&action=raw&ctype=text/javascript' ); } } ); /** * adds an "Add Topic" link to the header of the last section. Taken from [[:w:de:Mediawiki:Common.js]] */ mw.loader.using( [ 'jquery.accessKeyLabel' ], function() { $( function() { var newSectionLink = $( '#ca-addsection a' ); if( newSectionLink.length ) { var link = newSectionLink.clone(); //create a copy //avoid duplicate accesskey link.removeAttr( 'accesskey' ).updateTooltipAccessKeys(); //add it within the brackets var lastEditsectionLink = $( 'span.mw-editsection:last a:last' ); lastEditsectionLink.after( link ); lastEditsectionLink.after( ' | ' ); //see [[MediaWiki:Pipe-separator]] } })}); }() ); mw.loader.using( ['mediawiki.util', 'mediawiki.notify'] ).done( function () { /** * @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL * @rev 6 */ var extraCSS = mw.util.getParamValue( 'withCSS' ), extraJS = mw.util.getParamValue( 'withJS' ); if ( extraCSS ) { if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) { mw.loader.load( '/wiki/' + extraCSS + '?action=raw&ctype=text/css', 'text/css' ); } else { mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } ); } } if ( extraJS ) { alert(extraJS); if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) { mw.loader.load( '/wiki/' + extraJS + '?action=raw&ctype=text/javascript' ); } else { mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } ); } } }); $(function() { if (mw.config.get('wgAction') == "edit" || mw.config.get('wgAction') == "submit" || mw.config.get('wgCanonicalSpecialPageName') == 'Search') mw.loader.load('/wiki/MediaWiki:Common.js/edit.js?action=raw&ctype=text/javascript'); }); function wantLive(){ if(mw.cookie.get('wantLive') != '1'){ if(confirm("想明白生命的意义吗?想真正的……活着吗?")){ mw.cookie.set( 'wantLive', '1',{expires:30} ); } else{ window.close(); window.opener=null; window.open('','_self'); open(location, '_self').close(); } } } $( wantLive);
返回
MediaWiki:Common.js
。
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
系统消息
讨论
English
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
简单编辑教程
特殊页面
通用设定
人物
力量体系
体系换算
洪荒万族
法宝
模因
阵法
时间轴
其他设定伏笔
名词解释
主神空间
主神空间
剧情位面
兑换列表
剧情道具
负面宇宙
幻想地
天生武器
工具
链入页面
相关更改
页面信息
友情链接
侠行维基