User:Sanbeg/vfd NavBar.js
Jump to navigation
Jump to search
Note: After saving, changes may not occur immediately. Click here to learn how to bypass your browser's cache.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Cmd-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (Cmd-Shift-R on a Mac)
- Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Clear the cache in Tools → Preferences
For details and instructions about other browsers, see Wikipedia:Bypass your cache.
Code that you insert on this page could contain malicious content capable of compromising your account. If you are unsure whether code you are adding to this page is safe, you can ask at the central discussion page, Scriptorium. The code will be executed when previewing this page under some skins, including Monobook. You can in the interim if you wish to refresh the content sooner under another skin. |
Documentation for this script can be added at User:Sanbeg/vfd NavBar. |
/**
==BEGIN Dynamic Navigation Bars (experimantal)==
Modified from the NavBars in [[Mediawiki:Monobook.js]] to work with vfd divs. This will hide closed discussions in AFD/AFC pages, but
allow you to toggle them, and will show them by default in the AFD subpages.
**/
// 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
var vfd_NavigationBarShowDefault = 1;
/**
===toggle===
**/
// shows and hides content and picture (if available) of navigation bars
// Parameters:
// indexNavigationBar: the index of navigation bar to be toggled
function vfd_toggleNavigationBar(indexNavigationBar)
{
var NavToggle = document.getElementById("vfd_NavToggle" + indexNavigationBar);
var NavFrame = document.getElementById("vfd_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.style && (NavChild.className != 'vfd_NavToggle')) {
// } else {
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 (NavChild.style) {
NavChild.style.display = 'block';
}
}
NavToggle.firstChild.data = NavigationBarHide;
}
}
/**
===create===
**/
// adds show/hide-button to navigation bars
function vfd_createNavigationBarToggleButton()
{
var indexNavigationBar = 0;
// iterate over all < div >-elements
for(
var i=0;
NavFrame = document.getElementsByTagName("div")[i];
i++
) {
// if found a navigation bar
if (NavFrame.className == "navbar") {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'vfd_NavToggle';
NavToggle.setAttribute('id', 'vfd_NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:vfd_toggleNavigationBar(' + indexNavigationBar + ');');
var NavToggleText = document.createTextNode(NavigationBarHide);
NavToggle.appendChild(NavToggleText);
// attach the toggle link
NavFrame.appendChild(NavToggle);
NavFrame.setAttribute('id', 'vfd_NavFrame' + indexNavigationBar);
}
}
// if more Navigation Bars found than Default: hide all
if (vfd_NavigationBarShowDefault < indexNavigationBar) {
for(
var i=1;
i<=indexNavigationBar;
i++
) {
vfd_toggleNavigationBar(i);
}
}
}
addOnloadHook(vfd_createNavigationBarToggleButton);
// END Dynamic Navigation Bars
// ===============================================