2011-09-01 3 views
1

나는 오페라에서 실패한 몇 가지 이벤트 코드를 가지고 있으며 이것을 this small testcase으로 제거했다.Opera는 기본적으로 이벤트를 캡처하고 올바른 동작은 무엇입니까?

기본적으로 문제는 addEventListener의 세 번째 매개 변수가 설정되지 않은 경우 이벤트 처리기가 Opera에서 실행되지 않는다는 것입니다. "useCapture not set" 버튼이 클릭되었지만 Opera에서는 그렇지 않은 경우 Firefox 및 Chrome에서 테스트 케이스의 값이 증가합니다.

이 구식 문서는 Opera가 webkit & 게코 브라우저와 다른 것으로 나타났습니다 : http://my.opera.com/hallvors/blog/2006/10/12/2006-10-12-event-capture-explained. 나는 그것을 어떻게 만들지 모르겠다. MDN은 useCapture이 기본적으로 false이어야한다고 말합니다.

은 Opera에서 기본값 인 true입니다. 매개 변수는 단순히 선택 사항이 아니며, 무엇이 누락 되었습니까? 올바른 행동은 무엇입니까?

답변

0

의심되는 경우 사양을 참조하십시오. 원래의 현재의 사양은 W3C의 DOM Level 2 Events입니다. ECMASCript binding page을 보면 useCapture 매개 변수가 필수 요소 인 것처럼 보이므로 옵션 매개 변수가 없으므로

DOM Level 3 Events explicitly mentions useCapture as being optional 비록이 초안 사양이 브라우저에서 광범위하게 채택 된 적이 없다고 생각합니다.

참고 :

relevant MDN page 또한이에 대한 메모가 useCapture를 만 주요 브라우저의 최신 버전으로 선택되었다을; 예를 들어 Firefox 6 이전에는 선택 사항이 아닙니다. 가장 광범위한 호환성을 위해이 매개 변수를 제공해야합니다.

결론 : 세 가지 매개 변수를 항상 전달하는 것이 가장 안전하며 오페라는 그것을 주장 할 권리가 충분히 있습니다.

+0

에서 해결 될 것입니다. 분명한 답변을 주셔서 감사합니다. –

0

DOM Level 3 Events에 비해 격차는 버그이고, 나는 철저하게 충분한 전체 MDN 페이지를 읽어 보지 않았 같아요 오페라 12

관련 문제