Come triggersre script.onerror in Internet Explorer?

La pagina onerror su MSDN afferma che il gestore onerror può essere collegato a un elemento di script e che “Fires quando si verifica un errore durante il caricamento degli oggetti”.

Ai fini dei test unitari, sto cercando di triggersre questo gestore oner, ma non sono riuscito a trovare un esempio adatto.

Il seguente codice genera un errore in Firefox, ma non viene visualizzato alcun avviso in Internet Explorer

 

Qualcuno conosce un valore per script.src che licenzierà il gestore collegato a script.onerror?

Ho trovato questo sepolto in alcuni documenti MSDN :

Si noti che la documentazione dice erroneamente che questo funzioni anche per gli elementi; l’errore verrà corretto nella documentazione del workshop per la versione finale di Internet Explorer 5 a marzo.

La prossima cosa che ho pensato potrebbe essere l’evento onreadystatechange:

  

Questo evento viene triggersto due volte per me, una volta con "caricamento" e di nuovo con "caricato", indipendentemente dal fatto che lo script sia valido o meno. Un'altra documentazione che ho trovato dice che a volte spara un evento completo, e non è molto chiaro quando dovrebbe sparare. Quindi sembra che non funzionerà.

Quindi penso che tu sia rimasto con la soluzione hacky di controllare che una variabile che lo script dovrebbe dichiarare esiste davvero. In HTML:

   

E poi ovviamente in declare_foo.js, avresti

 var foo = 'Script loaded successfully'; 

Avendo appena letto un po ‘su questo, sembra che anche onerror possa essere collegato all’object della finestra. Vedere:

http://www.javascriptkit.com/javatutors/error.shtml

Secondo questa pagina, puoi inserire gli argomenti msg, url e linenumber:

 window.onerror=function(msg, url, linenumber){ alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber) return true } 

Non sono sicuro del supporto del browser per questo, ma grazie per averlo portato alla mia attenzione!

Aggiornamento: non ha fatto nulla in Safari 4 (a parte la registrazione di un errore in firebug come al solito), ma mostra l’avviso in Firefox 3.6 Beta 5. Test di errore su http://www.javascriptkit.com/javatutors/errortest2. htm

Aggiornamento 2: fatto un test con il seguente:

index.html:

         

js.js: (nome stupido, lo so!)

 document.write('hi there' 

Risultato in FF 3.6 Beta 5:

Risultato

Cosa ne pensi di questo?