8

Mi sono imbattuto in questo problema oggi in IE6 (ma è riproducibile su tutte le versioni recenti di IE).Impossibile eseguire il codice da uno script liberato - IE6 IE7 IE8 IE9

Ho notato che alcune persone si sono imbattute in questo problema e non ho visto un modo molto pratico per risolvere questo problema.

Sembra esserci qualche altra soluzione che riguarda l'ordine dei tag di script e dei meta tag nella testa del documento HTML. Non ho confermare questo, ma qui è un collegamento in ogni caso: What causes the error "Can't execute code from a freed script"

so anche la soluzione a questo problema in modo sto postando qui sotto

risposta

16

Prima di tutto è necessario individuare la fonte del messaggio.

IE è noto per la sua segnalazione di errori abissali, ma per fortuna IE9 sembra in qualche modo capace. Se questo errore si verifica in IE6, IE7 o IE8 si verifica anche in IE9, quindi utilizzare IE9 per eseguire il debug (per la sanità)

Aprire la console webdeveloper in IE9 (premere F12) e scorrere i passaggi per produrre questo errore .

IE9 ora dovrebbe fornire un'indicazione di file e linea sulla console, yay!

Ciò che tipicamente va male è un callback che viene eseguito dopo un certo ritardo, sia da setTimeout che a causa di una richiesta Ajax. Se la finestra, il documento o il frame in cui è stato definito il callback sono stati scaricati, verrà visualizzato questo messaggio quando tenta di eseguire la funzione di callback.

Apparentemente altri browser ignorano questo problema, il che va bene suppongo. Per fare in modo che IE faccia lo stesso, basta avvolgere il callback in un blocco try-catch (non so a cosa valuterà la callback, non penso che valuti come indefinito). Se vuoi avere una gestione degli errori più precisa o se vuoi davvero agire quando ciò si verifica, puoi farlo probabilmente e per favore fai un post qui perché sono curioso di sapere che tipo di caso d'uso lo richiederebbe.

-2

La soluzione: assicurarsi di posizionare tutte le istruzioni META PRIMA di qualsiasi istruzione di script.

+2

Come prova tu stesso? O è copiato da un altro sito? Non ho alcun meta tag e continuo a ricevere questo errore – Mike

0

Se si dispone di una pagina che utilizza diversi frame, questo errore potrebbe essere causato da oggetti inizializzati in un frame utilizzato in un altro frame dopo che il frame iniziale è stato rimosso dalla pagina.

Quando ciò accade, poi a seconda della situazione, si potrebbe desiderare di:

  • recensione il codice alla ricerca di memoria potenziale perdite
  • Se quelli oggetto rappresentano alcuni dati che fai vuole realmente accaduto tra fotogrammi , quindi considera di utilizzare invece il loro modulo con stringenti.
Problemi correlati