MediaWiki:Common.js:修订间差异
外观
貌似可以直接使用 MediaWiki:Gadget-wikEd.js 页面加载,然后在用户设置里开启,因此取消在这里加载试试 |
无编辑摘要 |
||
| (未显示2个用户的19个中间版本) | |||
| 第1行: | 第1行: | ||
/* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */ | /* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */ | ||
/* NavBar 开始 */ | |||
mw.loader.using(['mediawiki.util', 'ext.gadget.site-lib'], function () { | |||
(function ($, mw) { | |||
/** | |||
* Dynamic Navigation Bars. See [[Wikipedia:NavFrame]] | |||
* | |||
* Based on script from en.wikipedia.org, 2008-09-15. | |||
* | |||
* @source www.mediawiki.org/wiki/MediaWiki:Gadget-NavFrame.js | |||
* @maintainer Helder.wiki, 2012–2013 | |||
* @maintainer Krinkle, 2013 | |||
* @maintainer Fantasticfears, 2013-2014 | |||
*/ | |||
( function () { | |||
var collapseCaption = wgULS('隐藏', '隱藏'); | |||
var expandCaption = wgULS('显示', '顯示'); | |||
var navigationBarHide = collapseCaption + '▲'; | |||
var navigationBarShow = expandCaption + '▼'; | |||
/** | |||
* Shows and hides content and picture (if available) of navigation bars. | |||
* | |||
* @param {number} indexNavigationBar The index of navigation bar to be toggled | |||
* @param {jQuery.Event} e Event object | |||
*/ | |||
function toggleNavigationBar( indexNavigationBar, e ) { | |||
var toggle = $( '#NavToggle' + indexNavigationBar ), | |||
frame = $( '#NavFrame' + indexNavigationBar ), | |||
isFrameCollapsed; | |||
if ( !frame || !toggle ) { | |||
return false; | |||
} | |||
isFrameCollapsed = frame.hasClass( 'collapsed' ); | |||
if ( isFrameCollapsed ) { | |||
frame.find( '> .NavPic, > .NavContent, > .toogleShow' ).each( function() { | |||
$( this ).css( 'display', 'block' ); | |||
}); | |||
frame.find( '> .toggleHide' ).each( function() { | |||
$( this ).css( 'display', 'none' ); | |||
}); | |||
toggle.text( navigationBarHide ); | |||
frame.removeClass( 'collapsed' ); | |||
} else { | |||
frame.find( '> .NavPic, > .NavContent, > .toogleShow' ).each( function() { | |||
$( this ).css( 'display', 'none' ); | |||
}); | |||
frame.find( '> .toggleHide' ).each( function() { | |||
$( this ).css( 'display', 'block' ); | |||
}); | |||
toggle.text( navigationBarShow ); | |||
frame.addClass( 'collapsed' ); | |||
} | |||
} | |||
/** | |||
* Adds show/hide-button to navigation bars. | |||
* | |||
* @param {jQuery} $content | |||
*/ | |||
function createNavigationBarToggleButton( $content ) { | |||
// Iterate over all (new) nav frames | |||
$content.find( 'div.NavFrame' ).each( function( indexNavigationBar ) { | |||
var frame = $( this ).attr( 'id', 'NavFrame' + indexNavigationBar ); | |||
// If found a navigation bar | |||
var navToggle = $( '<span class="NavToggle" id="NavToggle' + indexNavigationBar + '"></span>' ); | |||
frame.find( '> .NavHead' ).each( function() { | |||
$( this ).on( 'click', $.proxy( toggleNavigationBar, null, indexNavigationBar ) ); | |||
return false; | |||
}); | |||
if ( frame.hasClass( 'collapsed' ) ) { | |||
frame.find( '> .NavPic, > .NavContent, > .toggleHide' ).each( function() { | |||
$( this ).css( 'display', 'none' ); | |||
}); | |||
} else { | |||
frame.find( '> .toggleShow' ).each( function() { | |||
$( this ).css( 'display', 'none' ); | |||
}); | |||
} | |||
var showNavigationBarHide = true; | |||
frame.find( '> .NavPic, > .NavContent' ).each( function() { | |||
if ( $( this ).css( 'display' ) === 'none' ) { | |||
showNavigationBarHide = false; | |||
return false; | |||
} | |||
}); | |||
navToggle.text( showNavigationBarHide? navigationBarHide: navigationBarShow ); | |||
frame.find( '> .NavHead' ).each( function() { | |||
$( this ).append( navToggle ); | |||
return false; | |||
}); | |||
}); | |||
} | |||
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton ); | |||
}()); | |||
/** | |||
* Collapsible tables | |||
* | |||
* Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]]. | |||
* | |||
* @version 2.0.3 (2014-03-14) | |||
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js | |||
* @author [[User:R. Koot]] | |||
* @author [[User:Krinkle]] | |||
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which | |||
* is supported in MediaWiki core. | |||
*/ | |||
var autoCollapse = 2; | |||
var collapseCaption = wgULS('隐藏', '隱藏'); | |||
var expandCaption = wgULS('显示', '顯示'); | |||
var tableIndex = 0; | |||
function collapseTable( tableIndex ) { | |||
var Button = document.getElementById( 'collapseButton' + tableIndex ); | |||
var Table = document.getElementById( 'collapsibleTable' + tableIndex ); | |||
if ( !Table || !Button ) { | |||
return false; | |||
} | |||
var Rows = Table.rows; | |||
var i; | |||
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 createClickHandler( tableIndex ) { | |||
return function ( e ) { | |||
e.preventDefault(); | |||
collapseTable( tableIndex ); | |||
}; | |||
} | |||
function createCollapseButtons( $content ) { | |||
var NavigationBoxes = {}; | |||
var $Tables = $content.find( 'table' ); | |||
var i; | |||
$Tables.each( function( i, table ) { | |||
if ( $(table).hasClass( 'collapsible' ) ) { | |||
/* only add button and increment count if there is a header row to work with */ | |||
var HeaderRow = table.getElementsByTagName( 'tr' )[0]; | |||
if ( !HeaderRow ) { | |||
return; | |||
} | |||
var Header = table.getElementsByTagName( 'th' )[0]; | |||
if ( !Header ) { | |||
return; | |||
} | |||
NavigationBoxes[ tableIndex ] = table; | |||
table.setAttribute( 'id', 'collapsibleTable' + tableIndex ); | |||
var Button = document.createElement( 'span' ); | |||
var ButtonLink = document.createElement( 'a' ); | |||
var ButtonText = document.createTextNode( collapseCaption ); | |||
// Styles are declared in [[MediaWiki:Common.css]] | |||
Button.className = 'collapseButton'; | |||
ButtonLink.style.color = Header.style.color; | |||
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex ); | |||
ButtonLink.setAttribute( 'href', '#' ); | |||
$( ButtonLink ).on( 'click', createClickHandler( tableIndex ) ); | |||
ButtonLink.appendChild( ButtonText ); | |||
Button.appendChild( document.createTextNode( '[' ) ); | |||
Button.appendChild( ButtonLink ); | |||
Button.appendChild( document.createTextNode( ']' ) ); | |||
Header.insertBefore( Button, Header.firstChild ); | |||
tableIndex++; | |||
} | |||
} ); | |||
for ( i = 0; i < tableIndex; i++ ) { | |||
if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || | |||
( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) | |||
) { | |||
collapseTable( i ); | |||
} | |||
else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) { | |||
var element = NavigationBoxes[i]; | |||
while ((element = element.parentNode)) { | |||
if ( $( element ).hasClass( 'outercollapse' ) ) { | |||
collapseTable ( i ); | |||
break; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
mw.hook( 'wikipage.content' ).add( createCollapseButtons ); | |||
// 在这行的上面加入其他代码 | |||
})}); | |||
/* NavBar 结束 */ | |||
/* Tabs 开始*/ | |||
function MetaCaixaInit() { | |||
// S'executa al carregar-se la pàgina, si hi ha metacaixes, | |||
// s'assignen els esdeveniments als botons | |||
//alert("MetaCaixaInit"); | |||
var i = 0; // Inicialitzem comptador de caixes | |||
for (i = 0; i <= 9; i++) { | |||
var vMc = document.getElementById("mc" + i); | |||
if (!vMc) break; | |||
//alert("MetaCaixaInit, trobada Metacaixa mc"+i); | |||
var j = 1; // Inicialitzem comptador de botons dins de la caixa | |||
var vPsIni = 0; // Pestanya visible inicial | |||
for (j = 1; j <= 9; j++) { | |||
var vBt = document.getElementById("mc" + i + "bt" + j); | |||
if (!vBt) break; | |||
//alert("MetaCaixaInit, trobat botó mc"+i+"bt"+j); | |||
vBt.onclick = MetaCaixaMostraPestanya; // A cada botó assignem l'esdeveniment onclick | |||
//alert (vBt.className); | |||
if (vBt.className == "mcBotoSel") vPsIni = j; // Si tenim un botó seleccionat, en guardem l'index | |||
} | |||
//alert ("mc="+i+", ps="+j+", psini="+vPsIni ); | |||
if (vPsIni === 0) { // Si no tenim cap botó seleccionat, n'agafem un aleatòriament | |||
vPsIni = 1 + Math.floor((j - 1) * Math.random()); | |||
//alert ("Activant Pestanya a l'atzar; _mc"+i+"bt"+vPsIni +"_"); | |||
document.getElementById("mc" + i + "ps" + vPsIni).style.display = "block"; | |||
document.getElementById("mc" + i + "ps" + vPsIni).style.visibility = "visible"; | |||
document.getElementById("mc" + i + "bt" + vPsIni).className = "mcBotoSel"; | |||
} | |||
} | |||
} | |||
function MetaCaixaMostraPestanya() { | |||
// S'executa al clicar una pestanya, | |||
// aquella es fa visible i les altres s'oculten | |||
var vMcNom = this.id.substr(0, 3); // A partir del nom del botó, deduïm el nom de la caixa | |||
var vIndex = this.id.substr(5, 1); // I l'index | |||
var i = 1; | |||
for (i = 1; i <= 9; i++) { // busquem totes les pestanyes d'aquella caixa | |||
//alert(vMcNom+"ps"+i); | |||
var vPsElem = document.getElementById(vMcNom + "ps" + i); | |||
if (!vPsElem) break; | |||
if (vIndex == i) { // Si és la pestanya bona la mostrem i canviem la classe de botó | |||
vPsElem.style.display = "block"; | |||
vPsElem.style.visibility = "visible"; | |||
document.getElementById(vMcNom + "bt" + i).className = "mcBotoSel"; | |||
} else { // Sinó, l'ocultem i canviem la classe de botó | |||
vPsElem.style.display = "none"; | |||
vPsElem.style.visibility = "hidden"; | |||
document.getElementById(vMcNom + "bt" + i).className = "mcBoto"; | |||
} | |||
} | |||
return false; // evitem la recàrrega de la pàgina | |||
} | |||
$(MetaCaixaInit); | |||
/* Tabs 结束 */ | |||
2016年7月24日 (日) 06:51的最新版本
/* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */
/* NavBar 开始 */
mw.loader.using(['mediawiki.util', 'ext.gadget.site-lib'], function () {
(function ($, mw) {
/**
* Dynamic Navigation Bars. See [[Wikipedia:NavFrame]]
*
* Based on script from en.wikipedia.org, 2008-09-15.
*
* @source www.mediawiki.org/wiki/MediaWiki:Gadget-NavFrame.js
* @maintainer Helder.wiki, 2012–2013
* @maintainer Krinkle, 2013
* @maintainer Fantasticfears, 2013-2014
*/
( function () {
var collapseCaption = wgULS('隐藏', '隱藏');
var expandCaption = wgULS('显示', '顯示');
var navigationBarHide = collapseCaption + '▲';
var navigationBarShow = expandCaption + '▼';
/**
* Shows and hides content and picture (if available) of navigation bars.
*
* @param {number} indexNavigationBar The index of navigation bar to be toggled
* @param {jQuery.Event} e Event object
*/
function toggleNavigationBar( indexNavigationBar, e ) {
var toggle = $( '#NavToggle' + indexNavigationBar ),
frame = $( '#NavFrame' + indexNavigationBar ),
isFrameCollapsed;
if ( !frame || !toggle ) {
return false;
}
isFrameCollapsed = frame.hasClass( 'collapsed' );
if ( isFrameCollapsed ) {
frame.find( '> .NavPic, > .NavContent, > .toogleShow' ).each( function() {
$( this ).css( 'display', 'block' );
});
frame.find( '> .toggleHide' ).each( function() {
$( this ).css( 'display', 'none' );
});
toggle.text( navigationBarHide );
frame.removeClass( 'collapsed' );
} else {
frame.find( '> .NavPic, > .NavContent, > .toogleShow' ).each( function() {
$( this ).css( 'display', 'none' );
});
frame.find( '> .toggleHide' ).each( function() {
$( this ).css( 'display', 'block' );
});
toggle.text( navigationBarShow );
frame.addClass( 'collapsed' );
}
}
/**
* Adds show/hide-button to navigation bars.
*
* @param {jQuery} $content
*/
function createNavigationBarToggleButton( $content ) {
// Iterate over all (new) nav frames
$content.find( 'div.NavFrame' ).each( function( indexNavigationBar ) {
var frame = $( this ).attr( 'id', 'NavFrame' + indexNavigationBar );
// If found a navigation bar
var navToggle = $( '<span class="NavToggle" id="NavToggle' + indexNavigationBar + '"></span>' );
frame.find( '> .NavHead' ).each( function() {
$( this ).on( 'click', $.proxy( toggleNavigationBar, null, indexNavigationBar ) );
return false;
});
if ( frame.hasClass( 'collapsed' ) ) {
frame.find( '> .NavPic, > .NavContent, > .toggleHide' ).each( function() {
$( this ).css( 'display', 'none' );
});
} else {
frame.find( '> .toggleShow' ).each( function() {
$( this ).css( 'display', 'none' );
});
}
var showNavigationBarHide = true;
frame.find( '> .NavPic, > .NavContent' ).each( function() {
if ( $( this ).css( 'display' ) === 'none' ) {
showNavigationBarHide = false;
return false;
}
});
navToggle.text( showNavigationBarHide? navigationBarHide: navigationBarShow );
frame.find( '> .NavHead' ).each( function() {
$( this ).append( navToggle );
return false;
});
});
}
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );
}());
/**
* Collapsible tables
*
* Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]].
*
* @version 2.0.3 (2014-03-14)
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
* @author [[User:R. Koot]]
* @author [[User:Krinkle]]
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
* is supported in MediaWiki core.
*/
var autoCollapse = 2;
var collapseCaption = wgULS('隐藏', '隱藏');
var expandCaption = wgULS('显示', '顯示');
var tableIndex = 0;
function collapseTable( tableIndex ) {
var Button = document.getElementById( 'collapseButton' + tableIndex );
var Table = document.getElementById( 'collapsibleTable' + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.rows;
var i;
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 createClickHandler( tableIndex ) {
return function ( e ) {
e.preventDefault();
collapseTable( tableIndex );
};
}
function createCollapseButtons( $content ) {
var NavigationBoxes = {};
var $Tables = $content.find( 'table' );
var i;
$Tables.each( function( i, table ) {
if ( $(table).hasClass( 'collapsible' ) ) {
/* only add button and increment count if there is a header row to work with */
var HeaderRow = table.getElementsByTagName( 'tr' )[0];
if ( !HeaderRow ) {
return;
}
var Header = table.getElementsByTagName( 'th' )[0];
if ( !Header ) {
return;
}
NavigationBoxes[ tableIndex ] = table;
table.setAttribute( 'id', 'collapsibleTable' + tableIndex );
var Button = document.createElement( 'span' );
var ButtonLink = document.createElement( 'a' );
var ButtonText = document.createTextNode( collapseCaption );
// Styles are declared in [[MediaWiki:Common.css]]
Button.className = 'collapseButton';
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
ButtonLink.setAttribute( 'href', '#' );
$( ButtonLink ).on( 'click', createClickHandler( tableIndex ) );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( '[' ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( ']' ) );
Header.insertBefore( Button, Header.firstChild );
tableIndex++;
}
} );
for ( i = 0; i < tableIndex; i++ ) {
if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) ||
( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) )
) {
collapseTable( i );
}
else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
var element = NavigationBoxes[i];
while ((element = element.parentNode)) {
if ( $( element ).hasClass( 'outercollapse' ) ) {
collapseTable ( i );
break;
}
}
}
}
}
mw.hook( 'wikipage.content' ).add( createCollapseButtons );
// 在这行的上面加入其他代码
})});
/* NavBar 结束 */
/* Tabs 开始*/
function MetaCaixaInit() {
// S'executa al carregar-se la pàgina, si hi ha metacaixes,
// s'assignen els esdeveniments als botons
//alert("MetaCaixaInit");
var i = 0; // Inicialitzem comptador de caixes
for (i = 0; i <= 9; i++) {
var vMc = document.getElementById("mc" + i);
if (!vMc) break;
//alert("MetaCaixaInit, trobada Metacaixa mc"+i);
var j = 1; // Inicialitzem comptador de botons dins de la caixa
var vPsIni = 0; // Pestanya visible inicial
for (j = 1; j <= 9; j++) {
var vBt = document.getElementById("mc" + i + "bt" + j);
if (!vBt) break;
//alert("MetaCaixaInit, trobat botó mc"+i+"bt"+j);
vBt.onclick = MetaCaixaMostraPestanya; // A cada botó assignem l'esdeveniment onclick
//alert (vBt.className);
if (vBt.className == "mcBotoSel") vPsIni = j; // Si tenim un botó seleccionat, en guardem l'index
}
//alert ("mc="+i+", ps="+j+", psini="+vPsIni );
if (vPsIni === 0) { // Si no tenim cap botó seleccionat, n'agafem un aleatòriament
vPsIni = 1 + Math.floor((j - 1) * Math.random());
//alert ("Activant Pestanya a l'atzar; _mc"+i+"bt"+vPsIni +"_");
document.getElementById("mc" + i + "ps" + vPsIni).style.display = "block";
document.getElementById("mc" + i + "ps" + vPsIni).style.visibility = "visible";
document.getElementById("mc" + i + "bt" + vPsIni).className = "mcBotoSel";
}
}
}
function MetaCaixaMostraPestanya() {
// S'executa al clicar una pestanya,
// aquella es fa visible i les altres s'oculten
var vMcNom = this.id.substr(0, 3); // A partir del nom del botó, deduïm el nom de la caixa
var vIndex = this.id.substr(5, 1); // I l'index
var i = 1;
for (i = 1; i <= 9; i++) { // busquem totes les pestanyes d'aquella caixa
//alert(vMcNom+"ps"+i);
var vPsElem = document.getElementById(vMcNom + "ps" + i);
if (!vPsElem) break;
if (vIndex == i) { // Si és la pestanya bona la mostrem i canviem la classe de botó
vPsElem.style.display = "block";
vPsElem.style.visibility = "visible";
document.getElementById(vMcNom + "bt" + i).className = "mcBotoSel";
} else { // Sinó, l'ocultem i canviem la classe de botó
vPsElem.style.display = "none";
vPsElem.style.visibility = "hidden";
document.getElementById(vMcNom + "bt" + i).className = "mcBoto";
}
}
return false; // evitem la recàrrega de la pàgina
}
$(MetaCaixaInit);
/* Tabs 结束 */