Header

From Wikitripoli

(Difference between revisions)
Line 20: Line 20:
   // with input from Tino Zijdel, Matthias Miller, Diego Perini
   // with input from Tino Zijdel, Matthias Miller, Diego Perini
   // http://dean.edwards.name/weblog/2005/10/add-event/
   // http://dean.edwards.name/weblog/2005/10/add-event/
 +
 
   function addEvent(element, type, handler) {
   function addEvent(element, type, handler) {
-
  // Modification by Tanny O'Haley, http://tanny.ica.com to add the
+
    // Modification by Tanny O'Haley, http://tanny.ica.com to add the
-
  // DOMContentLoaded for all browsers.
+
    // DOMContentLoaded for all browsers.
-
  if (type == "DOMContentLoaded" || type == "domload") {
+
    if (type == "DOMContentLoaded" || type == "domload") {
-
  addDOMLoadEvent(handler);
+
      addDOMLoadEvent(handler);
-
  return;
+
      return;
-
  }
+
    }
-
  if (element.addEventListener) {
+
    if (element.addEventListener) {
-
  element.addEventListener(type, handler, false);
+
      element.addEventListener(type, handler, false);
-
  } else {
+
    } else {
-
  // assign each event handler a unique ID
+
      // assign each event handler a unique ID
-
  if (!handler.$$guid) handler.$$guid = addEvent.guid++;
+
      if (!handler.$$guid) handler.$$guid = addEvent.guid++;
-
  // create a hash table of event types for the element
+
      // create a hash table of event types for the element
-
  if (!element.events) element.events = {};
+
      if (!element.events) element.events = {};
-
  // create a hash table of event handlers for each element/event pair
+
      // create a hash table of event handlers for each element/event pair
-
  var handlers = element.events[type];
+
      var handlers = element.events[type];
-
  if (!handlers) {
+
      if (!handlers) {
-
  handlers = element.events[type] = {};
+
        handlers = element.events[type] = {};
-
  // store the existing event handler (if there is one)
+
        // store the existing event handler (if there is one)
-
  if (element["on" + type]) {
+
        if (element["on" + type]) {
-
  handlers[0] = element["on" + type];
+
          handlers[0] = element["on" + type];
-
  }
+
        }
-
  }
+
      }
-
  // store the event handler in the hash table
+
      // store the event handler in the hash table
-
  handlers[handler.$$guid] = handler;
+
      handlers[handler.$$guid] = handler;
-
  // assign a global event handler to do all the work
+
      // assign a global event handler to do all the work
-
  element["on" + type] = handleEvent;
+
      element["on" + type] = handleEvent;
-
  }
+
    }
   };
   };
 +
 
   // a counter used to create unique IDs
   // a counter used to create unique IDs
   addEvent.guid = 1;
   addEvent.guid = 1;
-
 
+
 
   function removeEvent(element, type, handler) {
   function removeEvent(element, type, handler) {
-
  if (element.removeEventListener) {
+
    if (element.removeEventListener) {
-
  element.removeEventListener(type, handler, false);
+
      element.removeEventListener(type, handler, false);
-
  } else {
+
    } else {
-
  // delete the event handler from the hash table
+
      // delete the event handler from the hash table
-
  if (element.events && element.events[type]) {
+
      if (element.events && element.events[type]) {
-
  delete element.events[type][handler.$$guid];
+
        delete element.events[type][handler.$$guid];
-
  }
+
      }
-
  }
+
    }
   };
   };
-
 
+
 
   function handleEvent(event) {
   function handleEvent(event) {
-
  var returnValue = true;
+
    var returnValue = true;
-
  // grab the event object (IE uses a global event object)
+
    // grab the event object (IE uses a global event object)
-
  event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
+
    event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
-
  // get a reference to the hash table of event handlers
+
    // get a reference to the hash table of event handlers
-
  var handlers = this.events[event.type];
+
    var handlers = this.events[event.type];
-
  // execute each event handler
+
    // execute each event handler
-
  for (var i in handlers) {
+
    for (var i in handlers) {
-
  this.$$handleEvent = handlers[i];
+
      this.$$handleEvent = handlers[i];
-
  if (this.$$handleEvent(event) === false) {
+
      if (this.$$handleEvent(event) === false) {
-
  returnValue = false;
+
        returnValue = false;
-
  }
+
      }
-
  }
+
    }
-
  return returnValue;
+
    return returnValue;
   };
   };
-
 
+
 
   function fixEvent(event) {
   function fixEvent(event) {
-
  // add W3C standard event methods
+
    // add W3C standard event methods
-
  event.preventDefault = fixEvent.preventDefault;
+
    event.preventDefault = fixEvent.preventDefault;
-
  event.stopPropagation = fixEvent.stopPropagation;
+
    event.stopPropagation = fixEvent.stopPropagation;
-
  return event;
+
    return event;
   };
   };
 +
 
   fixEvent.preventDefault = function() {
   fixEvent.preventDefault = function() {
-
  this.returnValue = false;
+
    this.returnValue = false;
   };
   };
 +
   fixEvent.stopPropagation = function() {
   fixEvent.stopPropagation = function() {
-
  this.cancelBubble = true;
+
    this.cancelBubble = true;
   };
   };
-
 
+
 
   // End Dean Edwards addEvent.
   // End Dean Edwards addEvent.
Line 104: Line 108:
   }
   }
   }
   }
-
 
   // Here are my functions for adding the DOMContentLoaded event to browsers other
   // Here are my functions for adding the DOMContentLoaded event to browsers other
   // than Mozilla.
   // than Mozilla.
-
 
   // Array of DOMContentLoaded event handlers.
   // Array of DOMContentLoaded event handlers.
   window.onDOMLoadEvents = new Array();
   window.onDOMLoadEvents = new Array();
   window.DOMContentLoadedInitDone = false;
   window.DOMContentLoadedInitDone = false;
-
 
   // Function that adds DOMContentLoaded listeners to the array.
   // Function that adds DOMContentLoaded listeners to the array.
   function addDOMLoadEvent(listener) {
   function addDOMLoadEvent(listener) {
   window.onDOMLoadEvents[window.onDOMLoadEvents.length]=listener;
   window.onDOMLoadEvents[window.onDOMLoadEvents.length]=listener;
   }
   }
-
 
   // Function to process the DOMContentLoaded events array.
   // Function to process the DOMContentLoaded events array.
   function DOMContentLoadedInit() {
   function DOMContentLoadedInit() {
   // quit if this function has already been called
   // quit if this function has already been called
   if (window.DOMContentLoadedInitDone) return;
   if (window.DOMContentLoadedInitDone) return;
-
 
   // flag this function so we don't do the same thing twice
   // flag this function so we don't do the same thing twice
   window.DOMContentLoadedInitDone = true;
   window.DOMContentLoadedInitDone = true;
-
 
   // iterates through array of registered functions  
   // iterates through array of registered functions  
   for (var i=0; i<window.onDOMLoadEvents.length; i++) {
   for (var i=0; i<window.onDOMLoadEvents.length; i++) {
Line 131: Line 129:
   }
   }
   }
   }
-
 
   function DOMContentLoadedScheduler() {
   function DOMContentLoadedScheduler() {
   // quit if the init function has already been called
   // quit if the init function has already been called
   if (window.DOMContentLoadedInitDone) return true;
   if (window.DOMContentLoadedInitDone) return true;
-
 
   // First, check for Safari or KHTML.
   // First, check for Safari or KHTML.
   // Second, check for IE.
   // Second, check for IE.
Line 156: Line 152:
   setTimeout("DOMContentLoadedScheduler()", 250);
   setTimeout("DOMContentLoadedScheduler()", 250);
   }
   }
-
 
   return true;
   return true;
   }
   }
-
 
   // Schedule to run the init function.
   // Schedule to run the init function.
   setTimeout("DOMContentLoadedScheduler()", 250);
   setTimeout("DOMContentLoadedScheduler()", 250);
-
 
   // Just in case window.onload happens first, add it there too.
   // Just in case window.onload happens first, add it there too.
   addEvent(window, "load", DOMContentLoadedInit);
   addEvent(window, "load", DOMContentLoadedInit);
-
 
   // If addEventListener supports the DOMContentLoaded event.
   // If addEventListener supports the DOMContentLoaded event.
   if(document.addEventListener)
   if(document.addEventListener)
   document.addEventListener("DOMContentLoaded", DOMContentLoadedInit, false);
   document.addEventListener("DOMContentLoaded", DOMContentLoadedInit, false);
-
 
   /* for Internet Explorer */
   /* for Internet Explorer */
   /*@cc_on @*/
   /*@cc_on @*/
Line 181: Line 172:
   };
   };
   /*@end @*/
   /*@end @*/
-
 
-
 
   addEvent(window, 'DOMContentLoaded', myFunction);
   addEvent(window, 'DOMContentLoaded', myFunction);
-
 
   function myFunction(){
   function myFunction(){
   var ad = document.getElementsByName("google_ads_frame")[0];
   var ad = document.getElementsByName("google_ads_frame")[0];

Revision as of 00:14, 10 May 2007

<style type="text/css">
  /*
     Notes: 
      -You must log as admin to edit this page
      -Whatever you enter in this page will be added to the html in the header after the standard style sheet, so you can override styles. 
      -if you want your code to look nice on this page, put a space at the beginning of each line
      -This is the default style sheet that you can override : http://editthis.info/wiki/skins/monobook/main.css 
      
      For example uncomment this next section to turn all the text green:
  */
 /*
body {
   color: green;
}
 */
</style>
<script type="text/javascript">
  // written by Dean Edwards, 2005
  // with input from Tino Zijdel, Matthias Miller, Diego Perini
  // http://dean.edwards.name/weblog/2005/10/add-event/
  
  function addEvent(element, type, handler) {
    // Modification by Tanny O'Haley, http://tanny.ica.com to add the
    // DOMContentLoaded for all browsers.
    if (type == "DOMContentLoaded" || type == "domload") {
      addDOMLoadEvent(handler);
      return;
    }
    if (element.addEventListener) {
      element.addEventListener(type, handler, false);
    } else {
      // assign each event handler a unique ID
      if (!handler.$$guid) handler.$$guid = addEvent.guid++;
      // create a hash table of event types for the element
      if (!element.events) element.events = {};
      // create a hash table of event handlers for each element/event pair
      var handlers = element.events[type];
      if (!handlers) {
        handlers = element.events[type] = {};
        // store the existing event handler (if there is one)
        if (element["on" + type]) {
          handlers[0] = element["on" + type];
        }
      }
      // store the event handler in the hash table
      handlers[handler.$$guid] = handler;
      // assign a global event handler to do all the work
      element["on" + type] = handleEvent;
    }
  };
  
  // a counter used to create unique IDs
  addEvent.guid = 1;
  
  function removeEvent(element, type, handler) {
    if (element.removeEventListener) {
      element.removeEventListener(type, handler, false);
    } else {
      // delete the event handler from the hash table
      if (element.events && element.events[type]) {
        delete element.events[type][handler.$$guid];
      }
    }
  };
  
  function handleEvent(event) {
    var returnValue = true;
    // grab the event object (IE uses a global event object)
    event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
    // get a reference to the hash table of event handlers
    var handlers = this.events[event.type];
    // execute each event handler
    for (var i in handlers) {
      this.$$handleEvent = handlers[i];
      if (this.$$handleEvent(event) === false) {
        returnValue = false;
      }
    }
    return returnValue;
  };
  
  function fixEvent(event) {
    // add W3C standard event methods
    event.preventDefault = fixEvent.preventDefault;
    event.stopPropagation = fixEvent.stopPropagation;
    return event;
  };
  
  fixEvent.preventDefault = function() {
    this.returnValue = false;
  };
  fixEvent.stopPropagation = function() {
    this.cancelBubble = true;
  };
  
  // End Dean Edwards addEvent.
  // Tino Zijdel - crisp@xs4all.nl This little snippet fixes the problem that the onload attribute on 
  // the body-element will overwrite previous attached events on the window object for the onload event.
  if (!window.addEventListener) {
  document.onreadystatechange = function(){
  if (window.onload && window.onload != handleEvent) {
  addEvent(window, 'load', window.onload);
  window.onload = handleEvent;
  }
  }
  }
  // Here are my functions for adding the DOMContentLoaded event to browsers other
  // than Mozilla.
  // Array of DOMContentLoaded event handlers.
  window.onDOMLoadEvents = new Array();
  window.DOMContentLoadedInitDone = false;
  // Function that adds DOMContentLoaded listeners to the array.
  function addDOMLoadEvent(listener) {
  window.onDOMLoadEvents[window.onDOMLoadEvents.length]=listener;
  }
  // Function to process the DOMContentLoaded events array.
  function DOMContentLoadedInit() {
  // quit if this function has already been called
  if (window.DOMContentLoadedInitDone) return;
  // flag this function so we don't do the same thing twice
  window.DOMContentLoadedInitDone = true;
  // iterates through array of registered functions 
  for (var i=0; i<window.onDOMLoadEvents.length; i++) {
  var func = window.onDOMLoadEvents[i];
  func();
  }
  }
  function DOMContentLoadedScheduler() {
  // quit if the init function has already been called
  if (window.DOMContentLoadedInitDone) return true;
  // First, check for Safari or KHTML.
  // Second, check for IE.
  //if DOM methods are supported, and the body element exists
  //(using a double-check including document.body, for the benefit of older moz builds [eg ns7.1] 
  //in which getElementsByTagName('body')[0] is undefined, unless this script is in the body section)
  if(/KHTML|WebKit/i.test(navigator.userAgent)) {
  if(/loaded|complete/.test(document.readyState)) {
  DOMContentLoadedInit();
  } else {
  // Not ready yet, wait a little more.
  setTimeout("DOMContentLoadedScheduler()", 250);
  }
  } else if(document.getElementById("__ie_onload")) {
  return true;
  } else if(typeof document.getElementsByTagName != 'undefined' && (document.getElementsByTagName('body')[0] != null || document.body != null)) {
  DOMContentLoadedInit();
  } else {
  // Not ready yet, wait a little more.
  setTimeout("DOMContentLoadedScheduler()", 250);
  }
  return true;
  }
  // Schedule to run the init function.
  setTimeout("DOMContentLoadedScheduler()", 250);
  // Just in case window.onload happens first, add it there too.
  addEvent(window, "load", DOMContentLoadedInit);
  // If addEventListener supports the DOMContentLoaded event.
  if(document.addEventListener)
  document.addEventListener("DOMContentLoaded", DOMContentLoadedInit, false);
  /* for Internet Explorer */
  /*@cc_on @*/
  /*@if (@_win32)
  document.write("<script id=__ie_onload defer src=\\"//:\\"><\\/script>");
  var script = document.getElementById("__ie_onload");
  script.onreadystatechange = function() {
  if (this.readyState == "complete") {
  DOMContentLoadedInit(); // call the onload handler
  }
  };
  /*@end @*/
  addEvent(window, 'DOMContentLoaded', myFunction);
  function myFunction(){
  var ad = document.getElementsByName("google_ads_frame")[0];
  ad.style.width = 0;
  ad.style.height = 0;
  };
</script>
Personal tools