JS li 태그 onclick이 IE8에서 작동하지 않음: 솔루션
웹 개발에서는 브라우저 간 호환성이 가장 중요합니다. IE8과 같은 인터넷 브라우저에서 예기치 않은 동작이 발생하면 실망스러울 수 있습니다. 이 문서에서는
해결책을 이해하려면 표준 addEventListener 메소드에 대한 IE8의 지원 부족을 인식하는 것이 중요합니다. 대신 레거시 attachmentEvent 메소드를 사용합니다. IE8에서 이벤트를 처리하고 브라우저 간 호환성을 보장하기 위해 폴리필 함수를 사용할 수 있습니다.
var hookEvent = (function() { var div; function standardHookEvent(element, eventName, handler) { element.addEventListener(eventName, handler, false); return element; } 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."; })();
이 함수는 브라우저에서 지원하는 이벤트 처리 메커니즘을 감지하고 적절한 함수를 호출합니다. 또한 PreventDefault 및 stopPropagation 메소드에 대한 폴리필을 제공합니다.
이 기능을 사용하려면 원래 코드를 수정할 수 있습니다.
hookEvent(document.getElementById("hd_vertical"), "click", function(e) { // Handle the event });
마지막으로 IE8에는 getElementsByClassName에 대한 지원이 부족하다는 점에 주목할 가치가 있습니다. 대신 IE8에서 요소를 검색하려면 querySelectorAll을 사용해야 합니다.
이러한 솔루션을 구현하면
위 내용은 내 `` 태그의 'onclick' 기능이 IE8에서 작동하지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!