IE8 onClick 이벤트 리스너 호환성 문제
문제:
제공된 코드에서 JavaScript 이벤트 리스너는 li 요소가 IE8에서 작동하지 않습니다 browser.
해결책:
IE8에는 addEventListener 메서드가 없으므로 대체 크로스 브라우저 이벤트 처리 솔루션이 필요합니다. 다음 코드는 표준 브라우저와 레거시 브라우저 모두에서 작동하는 addEventListener에 대한 폴리필을 제공합니다.
var hookEvent = (function() { var div; // Standard-compliant browsers function standardHookEvent(element, eventName, handler) { element.addEventListener(eventName, handler, false); return element; } // Legacy IE browsers function oldIEHookEvent(element, eventName, handler) { element.attachEvent("on" + eventName, function(e) { e = e || window.event; e.preventDefault = oldIEPreventDefault; e.stopPropagation = oldIEStopPropagation; handler.call(element, e); }); return element; } function oldIEPreventDefault() { this.returnValue = false; } function oldIEStopPropagation() { this.cancelBubble = true; } div = document.createElement('div'); if (div.addEventListener) { div = undefined; return standardHookEvent; } if (div.attachEvent) { div = undefined; return oldIEHookEvent; } throw "Neither modern event mechanism (addEventListener nor attachEvent) is supported by this browser."; })();
사용법:
제공된 코드에서 getElementById().addEventListener( ) 통화:
hookEvent(document.getElementById("hd_vertical"), "click", function(e) { // ... });
추가 참고:
위 내용은 내 `onClick` 이벤트 리스너가 IE8에서 작동하지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!