2011-11-10 13 views
21

Chcę zalogować błędy JavaScript więc jestem nadrzędne window.onerror takiego:Jeśli przesłonię window.onerror w javascript powinieneś zwrócić true lub 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; 
} 

Widziałem niektórzy ludzie wracają true a niektóre powrót false. Co jest słuszne i dlaczego? Jeden post wspomniał o czymś, co musisz zwrócić true, albo Firefox poradzi sobie z błędem, który jest na swój sposób. Co??

Odpowiedz

25

Od MDN na window.onerror:

Kiedy funkcja zwraca true, zapobiega to wypalanie obsługi domyślnego zdarzenia.

Zobacz także chromu Issue 92062:

W Chrome powrocie true z window.onerror pozwala błąd propagować i powrocie false tłumi go.

Jest to odwrotność zachowania w Firefoksie i IE, gdzie zwrócenie "true" pomija błąd, ale powracający false propaguje go.

Uwaga: kwestia wspomniano powyżej zostało ustalone, zachowanie jest teraz jak wspomniano na MDN dla wszystkich przeglądarek.

+0

Wygląd Chrome na jego twarzy wydaje się być taki, jakbym oczekiwał, że zadziała ... "error? False!" –

+2

@Tomasz Nie odpowiedziałeś, co powinienem zrobić! Jaki jest przykład miejsca, w którym chcesz propagować błąd? Chyba to nowe pytanie! – tooshel

+0

Opera 11.60 zachowuje się jak Chrome. – c69

Powiązane problemy