2009-08-30 6 views

Odpowiedz

5

to może działać.

function myHandler(msg, url, line){ 
    //do stuff here... 
} 

//hook in all frames... 
function addErrorHandler(win, handler){ 
    win.onerror = handler; 
    for(var i=0;i<win.frames.length;i++){ 
    addErrorHandler(win.frames[i], handler); 
    } 
} 
//start with this window... and add handler recursively 
addErrorHandler(window, myHandler); 
+0

Dzięki za to. Wygląda ładnie, chociaż nie wydaje się być idealny dla mojej aplikacji - ramki i okna są tworzone w locie bez mojej zdolności do kontrolowania większości z nich, więc nie mogę z góry znać wszystkich obiektów wygrywających. Domyślam się, że nie ma sposobu globalnej obsługi błędów w oknie IE? Dzięki, Tal. – Tal

+0

ah, w takim przypadku ... w każdej utworzonej klatce, po prostu dodaj ... window.onerror = top.myHandler; – scunliffe

+0

tak ... ale nie wiem z góry, co byłoby źródłem Iframe. (używając formularza przesłanego do docelowej ramki IFrame) - window.onerror powinien znajdować się wewnątrz samego kodu IFrame. – Tal

2

Nie próbowałem tego, więc proszę nie wieszaj mnie za to :-) W oknie głównym/rodzica, które przechowuje wszystkie ramki iframe, możesz utworzyć tam funkcję zgłaszania błędów. Następnie użyj jQuery, aby pobrać wszystkie swoje elementy iFrame na swoją stronę i zarejestruj program obsługi .error, aby wskazał swoją funkcję zarejestrowaną w oknie nadrzędnym.

PS: Również podczas gdy byliśmy na temat javascript obsługi błędów, to jest całkiem fajne: https://damnit.jupiterit.com/

Powiązane problemy