JavaScript添加监控事件 addEventListner
// 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);