Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
(Created page with "→Any JavaScript here will be loaded for all users on every page load.: addOnloadHook( function() { var pops = function( elems ) { for (var i=0; i<elems.length; ...") |
|||
Line 12: | Line 12: | ||
for (var i=0; i<tags.length; i++) pops( bc.getElementsByTagName( tags[i] ) ); | for (var i=0; i<tags.length; i++) pops( bc.getElementsByTagName( tags[i] ) ); | ||
} ); | } ); | ||
function ModifySidebar(action, section, name, link) { | |||
try { | |||
switch (section) { | |||
case "languages": | |||
var target = "p-lang"; | |||
break; | |||
case "toolbox": | |||
var target = "p-tb"; | |||
break; | |||
case "navigation": | |||
var target = "p-navigation"; | |||
break; | |||
default: | |||
var target = "p-" + section; | |||
break; | |||
} | |||
if (action == "add") { | |||
var node = document.getElementById(target) | |||
.getElementsByTagName('div')[0] | |||
.getElementsByTagName('ul')[0]; | |||
var aNode = document.createElement('a'); | |||
var liNode = document.createElement('li'); | |||
aNode.appendChild(document.createTextNode(name)); | |||
aNode.setAttribute('href', link); | |||
liNode.appendChild(aNode); | |||
liNode.className='plainlinks'; | |||
node.appendChild(liNode); | |||
} | |||
if (action == "remove") { | |||
var list = document.getElementById(target) | |||
.getElementsByTagName('div')[0] | |||
.getElementsByTagName('ul')[0]; | |||
var listelements = list.getElementsByTagName('li'); | |||
for (var i = 0; i < listelements.length; i++) { | |||
if (listelements[i].getElementsByTagName('a')[0].innerHTML == name || | |||
listelements[i].getElementsByTagName('a')[0].href == link) { | |||
list.removeChild(listelements[i]); | |||
} | |||
} | |||
} | |||
} catch(e) { | |||
// lets just ignore what's happened | |||
return; | |||
} | |||
} | |||
function CustomizeModificationsOfSidebar() { | |||
//adds [[Special:CategoryTree]] to toolbox | |||
ModifySidebar("add", "toolbox", "CategoryTree", "http://en.wikipedia.org/wiki/Special:CategoryTree"); | |||
//removes [[Special:Upload]] from toolbox | |||
ModifySidebar("remove", "toolbox", "Upload file", "http://en.wikipedia.org/wiki/Special:Upload"); | |||
} | |||
addOnloadHook(CustomizeModificationsOfSidebar); |
Revision as of 19:58, 10 April 2011
/* Any JavaScript here will be loaded for all users on every page load. */ addOnloadHook( function() { var pops = function( elems ) { for (var i=0; i<elems.length; i++) { if ( !(' '+elems[i].className+' ').match( / pops / ) ) continue; var anchs = elems[i].getElementsByTagName('a'); for (var j=0; j<anchs.length; j++) anchs[j].target = '_blank'; } }; var bc = document.getElementById('bodyContent'); var tags = ['span', 'div', 'table', 'td', 'th']; for (var i=0; i<tags.length; i++) pops( bc.getElementsByTagName( tags[i] ) ); } ); function ModifySidebar(action, section, name, link) { try { switch (section) { case "languages": var target = "p-lang"; break; case "toolbox": var target = "p-tb"; break; case "navigation": var target = "p-navigation"; break; default: var target = "p-" + section; break; } if (action == "add") { var node = document.getElementById(target) .getElementsByTagName('div')[0] .getElementsByTagName('ul')[0]; var aNode = document.createElement('a'); var liNode = document.createElement('li'); aNode.appendChild(document.createTextNode(name)); aNode.setAttribute('href', link); liNode.appendChild(aNode); liNode.className='plainlinks'; node.appendChild(liNode); } if (action == "remove") { var list = document.getElementById(target) .getElementsByTagName('div')[0] .getElementsByTagName('ul')[0]; var listelements = list.getElementsByTagName('li'); for (var i = 0; i < listelements.length; i++) { if (listelements[i].getElementsByTagName('a')[0].innerHTML == name || listelements[i].getElementsByTagName('a')[0].href == link) { list.removeChild(listelements[i]); } } } } catch(e) { // lets just ignore what's happened return; } } function CustomizeModificationsOfSidebar() { //adds [[Special:CategoryTree]] to toolbox ModifySidebar("add", "toolbox", "CategoryTree", "http://en.wikipedia.org/wiki/Special:CategoryTree"); //removes [[Special:Upload]] from toolbox ModifySidebar("remove", "toolbox", "Upload file", "http://en.wikipedia.org/wiki/Special:Upload"); } addOnloadHook(CustomizeModificationsOfSidebar);