« MediaWiki:Common.js » : différence entre les versions
Page créée avec « /** Dynamic Navigation Bars (experimental) ************************************* * * From English Wikipedia, 2008-09-15 * * Description: See Wikipedia:NavFrame. ... » |
Aucun résumé des modifications |
||
Ligne 6 : | Ligne 6 : | ||
* Maintainers: UNMAINTAINED | * Maintainers: UNMAINTAINED | ||
*/ | */ | ||
// set up the words in your language | // set up the words in your language | ||
var NavigationBarHide = '[' + collapseCaption + ']'; | var NavigationBarHide = '[' + collapseCaption + ']'; | ||
var NavigationBarShow = '[' + expandCaption + ']'; | var NavigationBarShow = '[' + expandCaption + ']'; | ||
// shows and hides content and picture (if available) of navigation bars | // shows and hides content and picture (if available) of navigation bars | ||
// Parameters: | // Parameters: | ||
Ligne 17 : | Ligne 17 : | ||
var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar ); | var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar ); | ||
var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar ); | var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar ); | ||
if( !NavFrame || !NavToggle ) { | if( !NavFrame || !NavToggle ) { | ||
return false; | return false; | ||
} | } | ||
// if shown now | // if shown now | ||
if( NavToggle.firstChild.data == NavigationBarHide ) { | if( NavToggle.firstChild.data == NavigationBarHide ) { | ||
Ligne 33 : | Ligne 33 : | ||
} | } | ||
NavToggle.firstChild.data = NavigationBarShow; | NavToggle.firstChild.data = NavigationBarShow; | ||
// if hidden now | // if hidden now | ||
} else if( NavToggle.firstChild.data == NavigationBarShow ) { | } else if( NavToggle.firstChild.data == NavigationBarShow ) { | ||
Ligne 47 : | Ligne 47 : | ||
} | } | ||
} | } | ||
// adds show/hide-button to navigation bars | // adds show/hide-button to navigation bars | ||
function createNavigationBarToggleButton() { | function createNavigationBarToggleButton() { | ||
Ligne 61 : | Ligne 61 : | ||
NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar ); | NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar ); | ||
NavToggle.setAttribute( 'href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');' ); | NavToggle.setAttribute( 'href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');' ); | ||
var NavToggleText = document.createTextNode( NavigationBarHide ); | var NavToggleText = document.createTextNode( NavigationBarHide ); | ||
for( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { | for( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { | ||
Ligne 71 : | Ligne 71 : | ||
} | } | ||
} | } | ||
NavToggle.appendChild( NavToggleText ); | NavToggle.appendChild( NavToggleText ); | ||
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) | // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) |
Version du 17 avril 2012 à 20:17
/** Dynamic Navigation Bars (experimental) *************************************
*
* From English Wikipedia, 2008-09-15
*
* Description: See [[Wikipedia:NavFrame]].
* Maintainers: UNMAINTAINED
*/
// 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 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 ( 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( var 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 );
}
}
}
addOnloadHook( createNavigationBarToggleButton );