संपादित
मैं एक टुकड़ा है कि EventListener इंटरफेस और IE8 एक अनुकरण लिखा था, यहां तक कि सादे वस्तुओं पर प्रतिदेय है: https://github.com/antcolag/iEventListener/blob/master/iEventListener.js
पुराने उत्तर
इस अनुकरण addEventListener या के लिए एक रास्ता है ब्राउज़रों कि उन
में से एक का समर्थन नहीं करते पर attachEvent आशा में मदद मिलेगी
(function (w,d) { //
var
nc = "", nu = "", nr = "", t,
a = "addEventListener",
n = a in w,
c = (nc = "Event")+(n?(nc+= "", "Listener") : (nc+="Listener","")),
u = n?(nu = "attach", "add"):(nu = "add","attach"),
r = n?(nr = "detach","remove"):(nr = "remove","detach")
/*
* the evtf function, when invoked, return "attach" or "detach" "Event" functions if we are on a new browser, otherwise add "add" or "remove" "EventListener"
*/
function evtf(whoe){return function(evnt,func,capt){return this[whoe]((n?((t = evnt.split("on"))[1] || t[0]) : ("on"+evnt)),func, (!n && capt? (whoe.indexOf("detach") < 0 ? this.setCapture() : this.removeCapture()) : capt ))}}
w[nu + nc] = Element.prototype[nu + nc] = document[nu + nc] = evtf(u+c) // (add | attach)Event[Listener]
w[nr + nc] = Element.prototype[nr + nc] = document[nr + nc] = evtf(r+c) // (remove | detach)Event[Listener]
})(window, document)
चाहे कोई ब्राउज़र अपने डीओएम ऑब्जेक्ट्स के लिए प्रोटोटाइप विरासत योजना लागू करता है, यह डब्लू 3 सी [इवेंट टाटा इंटरफेस] (http://www.w3.org/TR/DOM-Level-2-Events/events) का समर्थन करता है या नहीं। .html # घटनाक्रम-EventTarget-addEventListener)। यदि आप समर्थन के लिए परीक्षण करना चाहते हैं, तो इसे सीधे जांचें: 'अगर (element.addEventListener) {/ * समर्थित * /} अन्य {/ * समर्थित नहीं है * /} 'सभी ब्राउज़रों में प्रभावी है और कार्यान्वयन से स्वतंत्र है। – RobG