2011-11-10 4 views
21

나는 그래서 이런 window.onerror을 무시하고있어 자바 스크립트 오류를 ​​기록 할 :JavaScript에서 window.onerror를 재정의하면 true 또는 false를 반환해야합니까?

window.onerror = function(message, file, lineNumber) { 
    var browser_ = encodeURI(navigator.appVersion); 
    var error_ = encodeURI("msg:"+ message + "\n\tfile:"+file+"\n\tln:"+lineNumber); 
    var user_ = encodeURI(""); 

    ... 

    return false; 
} 

내가 본 어떤 사람들은 true 일부 반환 false 돌아갑니다. 어느 것이 옳고 그 이유는 무엇입니까? 하나의 게시물에 대해 뭔가를 언급 한 사실 또는 파이어 폭스가 자신의 방식으로 오류를 처리 할 반환해야합니다. 뭐?? window.onerrorMDN에서

답변

25

는 :

함수가 true를 반환,이 디폴트 이벤트 핸들러의 발사를 방지 할 수 있습니다.

또한 크롬 Issue 92062 참조 : window.onerror에서 true 오류가 전파 할 수 있습니다 반환 크롬에서

, 및 false를 반환하면을 억제한다.

이것은 Firefox 및 IE의 동작과 반대입니다. 'true'를 반환하면 오류가 표시되지 않지만 false을 반환하면 오류가 전파됩니다.

참고 : 모든 브라우저 MDN에 언급 한 바와 같이 위에서 언급 한 문제가 수정되었습니다, 행동이 지금이다.

+0

Chrome의 동작이 내가 예상 한대로 작동하는 것 같습니다. "오류가 있습니까? false!" –

+2

@ 토마스 당신은 내가해야하는 대답을하지 않았습니다! 또한 오류를 전파하려는 위치의 예는 무엇입니까? 나는 그것이 새로운 질문이라고 생각한다! – tooshel

+0

Opera 11.60은 Chrome처럼 작동합니다. – c69

관련 문제