Skip to content

Instantly share code, notes, and snippets.

@phiggins42
Created February 26, 2010 02:14
Show Gist options
  • Save phiggins42/315318 to your computer and use it in GitHub Desktop.
Save phiggins42/315318 to your computer and use it in GitHub Desktop.
<html>
<head>
<script>
var d = document, load = function(){
// sigh. IE && Opera fire case insensitive events. (ran == 2)
// FF && Safari are case sensitive. (ran == 1)
var ran = 0, runner = function(){
ran++;
}
var n = d.getElementById("barbaz");
if(!n) return;
if(n.attachEvent){
n.attachEvent("onclick", runner);
// adding a second handler does nothing. runs 2 times still.
// n.attachEvent("oNcLiCk", runner);
}else{
d.addEventListener("click", runner, false);
// adding a second handler works as expected. runs 2 times now:
// document.addEventListener("cLiCk", runner, false)
}
if(!document.createEvent){
n.fireEvent("oNcLiCk");
n.fireEvent("onclick");
}else{
var e = d.createEvent("HTMLEvents");
e.initEvent("cLiCk", true, true);
n.dispatchEvent(e);
var r = d.createEvent("HTMLEvents");
r.initEvent("click", true, true)
n.dispatchEvent(r);
}
setTimeout(function(){
alert("Ran " + ran + " times.");
}, 500);
}
</script>
</head>
<body onload="load()"><div id="barbaz"></div></body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment