MSIE- und addEventListener-Problem in Javascript
Beim Versuch, die addEventListener-Methode für das Element document.getElementById('container') zur Ausführung zu verwenden Wenn Benutzer beim Kopieren von Inhalten auf einer Webseite eine „Beforecopy“-Funktion verwenden, kann es sein, dass Benutzer in Internet Explorer (MSIE) auf den Fehler „Objekt unterstützt diese Eigenschaft oder Methode nicht“ stoßen.
Das Problem tritt auf, weil MSIE die Verwendung von erfordert attachmentEvent anstelle der Standardmethode addEventListener. Um dieses Problem zu lösen, prüfen Sie, ob die Methode addEventListener verfügbar ist, und verwenden Sie sie gegebenenfalls. Andernfalls greifen Sie auf attachmentEvent zurück:
if (el.addEventListener){ el.addEventListener('click', modifyText, false); } else if (el.attachEvent){ el.attachEvent('onclick', modifyText); }
Ein anderer Ansatz besteht darin, eine Funktion zum Ausführen dieser Aufgabe zu erstellen:
function bindEvent(el, eventName, eventHandler) { if (el.addEventListener){ el.addEventListener(eventName, eventHandler, false); } else if (el.attachEvent){ el.attachEvent('on'+eventName, eventHandler); } } bindEvent(document.getElementById('myElement'), 'click', function () { alert('element clicked'); });
Das dritte Argument von addEventListener ist useCapture, das, wenn es auf „true“ gesetzt ist, angibt, dass die Ereigniserfassung initiiert werden soll.
Das obige ist der detaillierte Inhalt vonWarum löst „addEventListener' einen Fehler in MSIE aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!