Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save enyo/4684074 to your computer and use it in GitHub Desktop.

Select an option

Save enyo/4684074 to your computer and use it in GitHub Desktop.

Revisions

  1. @eirikbacker eirikbacker revised this gist Jun 3, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion addEventListener-polyfill.js
    Original file line number Diff line number Diff line change
    @@ -19,7 +19,7 @@

    addListen([doc, win]);
    if('Element' in win)win.Element.prototype.addEventListener = addEvent; //IE8
    else{ //IE < 8
    else{ //IE < 8
    doc.attachEvent('onreadystatechange', function(){addListen(doc.all)}); //Make sure we also init at domReady
    docHijack('getElementsByTagName');
    docHijack('getElementById');
  2. @eirikbacker eirikbacker revised this gist Jun 3, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion addEventListener-polyfill.js
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    //addEventListener polyfill 1.0 / Eirik Backer / MIT Licence
    (function(win, doc){
    if(win.addEventListener)return; //No need to polyfill
    if(win.addEventListener)return; //No need to polyfill

    function docHijack(p){var old = doc[p];doc[p] = function(v){return addListen(old(v))}}
    function addEvent(on, fn, self){
  3. @eirikbacker eirikbacker created this gist Jun 3, 2012.
    29 changes: 29 additions & 0 deletions addEventListener-polyfill.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,29 @@
    //addEventListener polyfill 1.0 / Eirik Backer / MIT Licence
    (function(win, doc){
    if(win.addEventListener)return; //No need to polyfill

    function docHijack(p){var old = doc[p];doc[p] = function(v){return addListen(old(v))}}
    function addEvent(on, fn, self){
    return (self = this).attachEvent('on' + on, function(e){
    var e = e || win.event;
    e.preventDefault = e.preventDefault || function(){e.returnValue = false}
    e.stopPropagation = e.stopPropagation || function(){e.cancelBubble = true}
    fn.call(self, e);
    });
    }
    function addListen(obj, i){
    if(i = obj.length)while(i--)obj[i].addEventListener = addEvent;
    else obj.addEventListener = addEvent;
    return obj;
    }

    addListen([doc, win]);
    if('Element' in win)win.Element.prototype.addEventListener = addEvent; //IE8
    else{ //IE < 8
    doc.attachEvent('onreadystatechange', function(){addListen(doc.all)}); //Make sure we also init at domReady
    docHijack('getElementsByTagName');
    docHijack('getElementById');
    docHijack('createElement');
    addListen(doc.all);
    }
    })(window, document);