User:Atelaes/viewSwitching.js
Jump to navigation
Jump to search
Note: You may have to bypass your browser’s cache to see the changes. In addition, after saving a sitewide CSS file such as MediaWiki:Common.css, it will take 5-10 minutes before the changes take effect, even if you clear your cache.
- Mozilla / Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Command-R on a Macintosh);
- Konqueror and Chrome: click Reload or press F5;
- Opera: clear the cache in Tools → Preferences;
- Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl-F5.
- This script lacks a documentation subpage. Please create it.
- Useful links: root page • root page’s subpages • links • redirects • your own
function viewSwitching(section) {
var vsHiddens = section.getElementsByClassName('hideme');
var vsShowns = section.getElementsByClassName('showme');
var vsShow = 'more ▼';
var vsHide = 'less ▲';
var vsToggle = newNode('a', {href: 'javascript:(function(){})()'}, '');
var vsButtonPlace = section.getElementsByClassName('putButtonHere')[0];
vsButtonPlace.insertBefore(vsToggle);
var vsCategory;
var vsClasses = section.className.split(/\s+/);
for (var i=0; i < vsClasses.length; i++) {
var vsClass = vsClasses[i];
if (vsClass.split('-')[0] == 'vsClass') {
vsCategory = vsClass.split('-')[1];
}
}
vsCategory = (vsCategory || 'others');
vsToggle.onclick = VisibilityToggles.register(vsCategory,
function show() {
vsToggle.innerHTML = vsHide;
for (var i = 0; i < vsShowns.length; ++i) {
vsShowns[i].style.display = 'none';
}
for (var i = 0; i < vsHiddens.length; ++i) {
vsHiddens[i].style.display = 'block';
}
},
function hide() {
vsToggle.innerHTML = vsShow;
for (var i = 0; i < vsShowns.length; ++i) {
vsShowns[i].style.display = 'block';
}
for (var i = 0; i < vsHiddens.length; ++i) {
vsHiddens[i].style.display = 'none';
}
});
}
jQuery(document).ready(function () {
var vsSwitchers = document.getElementsByClassName('vsSwitcher');
for (var i = 0; i < vsSwitchers.length; ++i) {
viewSwitching(vsSwitchers[i]);
}
})