브라우저가 이벤트 캡처 및 이벤트 버블 링을 지원하는지 감지하는 방법이 있습니까? http://modernizr.com/을 확인했지만 설명서에 정보가 표시되지 않습니다.이벤트 캡처 지원 검색 자바 스크립트
IE < 9는 이벤트 캡처를 지원하지 않지만 다른 브라우저에서는 괜찮을 것이라고 생각합니다.
명확성을 위해 브라우저가 이벤트 버블 단계뿐만 아니라 이벤트 DOM 모델의 이벤트 캡처 단계를 지원하는지 감지하고 싶습니다.
브라우저가 이벤트 캡처 및 이벤트 버블 링을 지원하는지 감지하는 방법이 있습니까? http://modernizr.com/을 확인했지만 설명서에 정보가 표시되지 않습니다.이벤트 캡처 지원 검색 자바 스크립트
IE < 9는 이벤트 캡처를 지원하지 않지만 다른 브라우저에서는 괜찮을 것이라고 생각합니다.
명확성을 위해 브라우저가 이벤트 버블 단계뿐만 아니라 이벤트 DOM 모델의 이벤트 캡처 단계를 지원하는지 감지하고 싶습니다.
더 나은 접근법이있을 수 있지만, 이것은 내가 생각해 낸 첫 번째 것입니다. 당신은 캡처 단계에서에 이벤트 처리기를 바인딩 요소를 만들 필요가 거기에 이벤트를 발생하고, 이벤트 처리기에서 eventPhase
속성을 확인합니다 :
var button = document.getElementById("example");
document.addEventListener("click", function (e) {
console.log(e.eventPhase); // 1 === capture, 2 === target, 3 === bubble
}, true);
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
button.dispatchEvent(evt);
당신은 아마 모든 종류의 추가 할 것 (예 : dispatchEvent
지원) 코드에 button
요소를 실제로 만들어서 숨겨진 DOM에 삽입해야합니다.
여기에 fiddle에 위의 코드가 포함되어 있습니다.
[eventsvent.eventPhase'에 대한 문서] (https://developer.mozilla.org/en-US/docs/Web/API/event.eventPhase), for 참고 –
"이벤트 캡처"란 정확히 무엇을 의미합니까? 1998 년 이후의 모든 브라우저는 * 일부 이벤트를 지원합니다. –
@Pekka 웃음 - 그는 그가 DOM 이벤트 모델의 캡처 단계를 의미한다고 가정합니다 (거품 이벤트에 반대하는 것으로, 가장 자주 이벤트를 수신합니다). –
예 이벤트 버블 페이즈에 걸친 이벤트 캡처 단계를 의미 함 – dannym