blob: aebc5cf7ed66395ec8277a1e748d29184226f960 (
plain)
- // ikiwiki's javascript utility function library
- var hooks;
- // Run onload as soon as the DOM is ready, if possible.
- // gecko, opera 9
- if (document.addEventListener) {
- document.addEventListener("DOMContentLoaded", run_hooks_onload, false);
- }
- // other browsers
- window.onload = run_hooks_onload;
- var onload_done = 0;
- function run_hooks_onload() {
- // avoid firing twice
- if (onload_done)
- return;
- onload_done = true;
- run_hooks("onload");
- }
- function run_hooks(name) {
- if (typeof(hooks) != "undefined") {
- for (var i = 0; i < hooks.length; i++) {
- if (hooks[i].name == name) {
- hooks[i].call();
- }
- }
- }
- }
- function hook(name, call) {
- if (typeof(hooks) == "undefined")
- hooks = new Array;
- hooks.push({name: name, call: call});
- }
- function getElementsByClass(cls, node, tag) {
- if (document.getElementsByClass)
- return document.getElementsByClass(cls, node, tag);
- if (! node) node = document;
- if (! tag) tag = '*';
- var ret = new Array();
- var pattern = new RegExp("(^|\\s)"+cls+"(\\s|$)");
- var els = node.getElementsByTagName(tag);
- for (i = 0; i < els.length; i++) {
- if ( pattern.test(els[i].className) ) {
- ret.push(els[i]);
- }
- }
- return ret;
- }
|