MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
New page: //<source lang="javascript"> →* Description: Redirects from /User:UserName/skin.js or .css to the user's actual skin page * Maintainer: Cacycle: if (wgArticleId == 0 && wgUserName... |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
// | // ============================================================ | ||
// BEGIN Enable multiple onload functions | |||
// setup onload functions this way: | |||
// aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets! | |||
if (!window.aOnloadFunctions) { | |||
var aOnloadFunctions = new Array(); | |||
} | |||
if ( | |||
} | |||
window.onload = function() { | |||
if (window.aOnloadFunctions) { | |||
for (var _i=0; _i<aOnloadFunctions.length; _i++) { | |||
aOnloadFunctions[_i](); | |||
} | |||
if ( | } | ||
} | |||
} | |||
/* | // END Enable multiple onload functions | ||
// ============================================================ | |||
//================================================================================ | |||
//*** Dynamic Navigation Bars | |||
// set up the words in your language | |||
var NavigationBarHide = '[hide]'; | |||
var NavigationBarShow = '[show]'; | |||
// set up max count of Navigation Bars on page, | |||
// if there are more, all will be hidden | |||
// NavigationBarShowDefault = 0; // all bars will be hidden | |||
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden | |||
if (typeof NavigationBarShowDefault == 'undefined' ) { | |||
var NavigationBarShowDefault = 0; | |||
} | |||
/ | |||
/ | |||
if | |||
if( | |||
// shows and hides content and picture (if available) of navigation bars | |||
// Parameters: | |||
// indexNavigationBar: the index of navigation bar to be toggled | |||
function toggleNavigationBar(indexNavigationBar) | |||
{ | |||
// 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 NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | ||
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); | var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); | ||
Line 300: | Line 49: | ||
// if shown now | // if shown now | ||
if (NavToggle.firstChild.data == NavigationBarHide) { | if (NavToggle.firstChild.data == NavigationBarHide) { | ||
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { | for ( | ||
if | var NavChild = NavFrame.firstChild; | ||
NavChild != null; | |||
NavChild = NavChild.nextSibling | |||
) { | |||
if (NavChild.className == 'NavPic') { | |||
NavChild.style.display = 'none'; | |||
} | |||
if (NavChild.className == 'NavContent') { | |||
NavChild.style.display = 'none'; | NavChild.style.display = 'none'; | ||
} | |||
if (NavChild.className == 'NavToggle') { | |||
NavChild.firstChild.data = NavigationBarShow; | |||
} | } | ||
} | } | ||
// if hidden now | // if hidden now | ||
} else if (NavToggle.firstChild.data == NavigationBarShow) { | } else if (NavToggle.firstChild.data == NavigationBarShow) { | ||
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { | for ( | ||
if | var NavChild = NavFrame.firstChild; | ||
NavChild != null; | |||
NavChild = NavChild.nextSibling | |||
) { | |||
if (NavChild.className == 'NavPic') { | |||
NavChild.style.display = 'block'; | NavChild.style.display = 'block'; | ||
} | |||
if (NavChild.className == 'NavContent') { | |||
NavChild.style.display = 'block'; | |||
} | |||
if (NavChild.className == 'NavToggle') { | |||
NavChild.firstChild.data = NavigationBarHide; | |||
} | } | ||
} | } | ||
} | } | ||
} | } | ||
// adds show/hide-button to navigation bars | // adds show/hide-button to navigation bars | ||
function createNavigationBarToggleButton() | function createNavigationBarToggleButton() | ||
{ | { | ||
var indexNavigationBar = 0; | var indexNavigationBar = 0; | ||
// iterate over all < div >-elements | // iterate over all < div >-elements | ||
var divs = document.getElementsByTagName("div"); | var divs = document.getElementsByTagName("div"); | ||
for (var i = 0; NavFrame = divs[i]; | for (var i=0; i<divs.length; i++) { | ||
var NavFrame = divs[i]; | |||
// if found a navigation bar | // if found a navigation bar | ||
if | if (NavFrame.className == "NavFrame") { | ||
indexNavigationBar++; | indexNavigationBar++; | ||
Line 334: | Line 102: | ||
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); | NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); | ||
var NavToggleText = document.createTextNode(NavigationBarHide); | |||
var NavToggleText = document.createTextNode( | |||
NavToggle.appendChild(NavToggleText); | NavToggle.appendChild(NavToggleText); | ||
// | // add NavToggle-Button as first div-element | ||
// in < div class="NavFrame" > | |||
NavFrame.insertBefore( | |||
NavToggle, | |||
NavFrame.firstChild | |||
); | |||
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); | NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); | ||
} | } | ||
} | } | ||
// if more Navigation Bars found than Default: hide all | |||
if (NavigationBarShowDefault < indexNavigationBar) { | |||
for( | |||
var i=1; | |||
i<=indexNavigationBar; | |||
/ | i++ | ||
) { | |||
toggleNavigationBar(i); | |||
if | |||
} | } | ||
} | } | ||
} | |||
addOnloadHook(createNavigationBarToggleButton); |
Latest revision as of 21:20, 8 September 2010
// ============================================================ // BEGIN Enable multiple onload functions // setup onload functions this way: // aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets! if (!window.aOnloadFunctions) { var aOnloadFunctions = new Array(); } window.onload = function() { if (window.aOnloadFunctions) { for (var _i=0; _i<aOnloadFunctions.length; _i++) { aOnloadFunctions[_i](); } } } // END Enable multiple onload functions // ============================================================ //================================================================================ //*** Dynamic Navigation Bars // set up the words in your language var NavigationBarHide = '[hide]'; var NavigationBarShow = '[show]'; // set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault = 0; // all bars will be hidden // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden if (typeof NavigationBarShowDefault == 'undefined' ) { var NavigationBarShowDefault = 0; } // 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 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 ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'none'; } if (NavChild.className == 'NavContent') { NavChild.style.display = 'none'; } if (NavChild.className == 'NavToggle') { NavChild.firstChild.data = NavigationBarShow; } } // if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'block'; } if (NavChild.className == 'NavContent') { NavChild.style.display = 'block'; } if (NavChild.className == 'NavToggle') { NavChild.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; i<divs.length; i++) { var NavFrame = divs[i]; // if found a navigation bar if (NavFrame.className == "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); NavToggle.appendChild(NavToggleText); // add NavToggle-Button as first div-element // in < div class="NavFrame" > NavFrame.insertBefore( NavToggle, NavFrame.firstChild ); NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for( var i=1; i<=indexNavigationBar; i++ ) { toggleNavigationBar(i); } } } addOnloadHook(createNavigationBarToggleButton);