>  기사  >  웹 프론트엔드  >  MSIE에서 `addEventListener`가 오류를 발생시키는 이유는 무엇입니까?

MSIE에서 `addEventListener`가 오류를 발생시키는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-25 01:52:02673검색

Why Does `addEventListener` Throw an Error in MSIE?

Javascript의 MSIE 및 addEventListener 문제

document.getElementById('container') 요소에서 addEventListener 메소드를 활용하여 실행하려고 할 때 웹페이지에서 콘텐츠를 복사할 때 "beforecopy" 기능을 사용하면 Internet Explorer(MSIE)에서 "개체가 이 속성 또는 메서드를 지원하지 않습니다." 오류가 발생할 수 있습니다.

이 문제는 MSIE에서 다음을 사용해야 하기 때문에 발생합니다. 표준 addEventListener 메소드 대신 attachmentEvent를 사용합니다. 이 문제를 해결하려면 addEventListener 메소드가 사용 가능한지 확인하고 사용 가능한 경우 이를 사용하고, 그렇지 않으면 attachmentEvent를 사용하십시오.

if (el.addEventListener){
  el.addEventListener('click', modifyText, false); 
} else if (el.attachEvent){
  el.attachEvent('onclick', modifyText);
}

또 다른 접근 방식은 이 작업을 수행하는 함수를 생성하는 것입니다.

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');
});

addEventListener의 세 번째 인수는 useCapture이며, true로 설정되면 이벤트 캡처가 시작되어야 함을 나타냅니다.

위 내용은 MSIE에서 `addEventListener`가 오류를 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.