Microsoft Internet Explorer (IE) does not support DOM Level 2 event handling, but have implemented their own event functions (attachEvent and detachEvent). I have made a function which will work in all modern browser. It will use W3C’s addEventListener if it is supported otherwise it will use IE’s event functions.
How to use:
execute doOnLoad() function at onloadaddEvent(window,’onload’, doOnLoad );
execute doHello() function when clicking on the helloWorld elementaddEvent(‘helloWorld’,’onclick’, doHello);
This is the script:
function addEvent(el,type,listener,useCapture) {
if(typeof el == 'string') {
el = document.getElementById(el);}
if(!el){return false;}
if(document.addEventListener) {
// W3C DOM Level 2 Events - used by Mozilla, Opera and Safari
if(!useCapture) {useCapture = false;} else {useCapture = true;}
el.addEventListener(type,listener,useCapture); }
else {
// MS implementation - used by Internet Explorer
el.attachEvent(type, listener); }}
function removeEvent(el,type,listener,useCapture) {
if(typeof el == 'string') {
el = document.getElementById(el);}
if(!el){return false;}
if(document.removeEventListener) {
// W3C DOM Level 2 Events - used by Mozilla, Opera and Safari
if(!useCapture) {useCapture = false;}
else {useCapture = true;}
el.removeEventListener(type,listener,useCapture); }
else {
// MS implementation - used by Internet Explorer
el.detachEvent(type, listener); }}