Difference between revisions of "MediaWiki:Common.js"
From Discovery Wiki
Jump to navigationJump to search (Rewrote the present functions.) |
|||
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
− | /* Event attach functions | + | /* Event attach functions. */ |
− | |||
function DW_eventAttach (obj, event, handler) { | function DW_eventAttach (obj, event, handler) { | ||
if (obj.addEventListener) { | if (obj.addEventListener) { | ||
Line 13: | Line 12: | ||
} | } | ||
− | function | + | /* Functions for Template:SpoilerWindow */ |
− | var el_list = document.getElementsByTagName( | + | function DW_createSpoilerLink () { |
+ | var el_list = document.getElementsByTagName('div'); | ||
var el_cur; | var el_cur; | ||
for (var i = 0, l = el_list.length; i < l; i++){ | for (var i = 0, l = el_list.length; i < l; i++){ | ||
el_cur = el_list[i]; | el_cur = el_list[i]; | ||
− | if (el_cur. | + | |
− | DW_eventAttach( | + | if ((el_cur.className && el_cur.className == 'dwspoiler')) { |
+ | var container = el_cur.getElementsByTagName('div'); | ||
+ | if (!container.item(1).style.display || container.item(1).style.display == 'block') { | ||
+ | var text = document.createTextNode('Hide'); | ||
+ | } else { | ||
+ | var text = document.createTextNode('Show'); | ||
+ | } | ||
+ | |||
+ | var link = document.createElement('a'); | ||
+ | link.appendChild(text); | ||
+ | link.setAttribute('href', 'javascript:void(0);'); | ||
+ | DW_eventAttach(link, 'click', function () { DW_toggleVisibility(this); }); | ||
+ | |||
+ | container.item(0).appendChild(document.createTextNode('[')); | ||
+ | container.item(0).appendChild(link); | ||
+ | container.item(0).appendChild(document.createTextNode(']')); | ||
+ | |||
} | } | ||
} | } | ||
} | } | ||
+ | addOnloadHook(DW_createSpoilerLink); | ||
− | |||
function DW_toggleVisibility (obj) { | function DW_toggleVisibility (obj) { | ||
− | var container = obj.parentNode.parentNode.getElementsByTagName('div').item( | + | var container = obj.parentNode.parentNode.getElementsByTagName('div').item(1); |
if (!container.style.display || container.style.display == 'block') { | if (!container.style.display || container.style.display == 'block') { | ||
container.style.display = 'none'; | container.style.display = 'none'; | ||
Line 35: | Line 51: | ||
} | } | ||
} | } | ||
− |
Revision as of 23:47, 12 July 2009
/* Any JavaScript here will be loaded for all users on every page load. */ /* Event attach functions. */ function DW_eventAttach (obj, event, handler) { if (obj.addEventListener) { obj.addEventListener(event, handler, false); } else if (obj.attachEvent) { var r = obj.attachEvent('on' + event, handler); } else { obj['on' + event] = handler; } } /* Functions for Template:SpoilerWindow */ function DW_createSpoilerLink () { var el_list = document.getElementsByTagName('div'); var el_cur; for (var i = 0, l = el_list.length; i < l; i++){ el_cur = el_list[i]; if ((el_cur.className && el_cur.className == 'dwspoiler')) { var container = el_cur.getElementsByTagName('div'); if (!container.item(1).style.display || container.item(1).style.display == 'block') { var text = document.createTextNode('Hide'); } else { var text = document.createTextNode('Show'); } var link = document.createElement('a'); link.appendChild(text); link.setAttribute('href', 'javascript:void(0);'); DW_eventAttach(link, 'click', function () { DW_toggleVisibility(this); }); container.item(0).appendChild(document.createTextNode('[')); container.item(0).appendChild(link); container.item(0).appendChild(document.createTextNode(']')); } } } addOnloadHook(DW_createSpoilerLink); function DW_toggleVisibility (obj) { var container = obj.parentNode.parentNode.getElementsByTagName('div').item(1); if (!container.style.display || container.style.display == 'block') { container.style.display = 'none'; obj.innerHTML = 'Show'; } else { container.style.display = 'block'; obj.innerHTML = 'Hide'; } }