2011-01-31 12 views
7

Ho una pagina in cui continuano a comparire misteriosi errori JavaScript. Sembra che provengano dall'applicazione che utilizziamo e non ne detengono la fonte. Sto lavorando a una vera soluzione a questo problema, ma domani avremo una demo e mi chiedevo se c'è un modo per sopprimere gli errori di JS a livello di pagina (come avvolgere TUTTI i componenti di javascript in un gigantesco tentativo).C'è un modo per provare/catturare un'intera pagina in modo dinamico?

+1

Che cosa sta succedendo? Farà fallire il codice in modo silenzioso, non funzionerà correttamente. –

+0

@Matte bene, se funziona per la demo ... Vedi maggiori informazioni [qui] (http://stackoverflow.com/questions/2822397/suppress-done-but-with-errors-on-page-in-ie). Un tentativo/cattura gigante sembra essere lo strumento di scelta –

+1

@Pekka: eh, I _guess _... sembra piuttosto debole. –

risposta

9

È possibile aggiungere un gestore all'evento window.onerror. In questo caso, tutti gli errori che si verificano all'interno della finestra verranno reindirizzati al gestore di questo evento. (Ho provato questo in Firefox e ha funzionato, ma ho avuto problemi con Chrome: l'installazione di Chrome è piuttosto incasinata, quindi potrebbe esserci il problema, ma ci sono bug di Chromium relativi a questo problema: bug #7771 e bug #8939)

window.onerror = function (msg, url, line) { 
    alert("Error on line " + line + " in " + url + ":\n" + msg); 
    // return true to prevent browser from displaying error 
    return true; 
} 
+0

Ho appena visto il link che Pekka ha pubblicato nel commento sopra ... Non ho provato questo in IE (non ho un computer Windows in giro), quindi non posso essere sicuro che funzioni come dovrebbe in quel browser. – jhartz

+4

* Per favore, per favore, per favore non usare questo però! * ** FISSARE IL CODICE. ** Ho perso troppo tempo a gestire questo tipo di idea terribile in Microsoft SharePoint. (+1 per la risposta però) –

+0

Questo è super! Grazie mille per questa correzione dell'ultimo minuto. Dovrebbe aiutare la demo ad andare alla grande! P.S. Funziona con Firefox, Chrome e IE8 (altre versioni ie non testate) – Maxx

Problemi correlati