Code kann nicht von einem freigegebenen Skript ausgeführt werden - IE6 IE7 IE8 IE9

8

Ich habe dieses Problem heute in IE6 (aber ist reproduzierbar auf allen aktuellen Version von IE).

Ich habe bemerkt, dass einige Leute auf dieses Problem gestoßen sind und ich habe keinen sehr praktischen Weg gesehen, dies zu beheben.

Es scheint eine andere Lösung zu geben, die bezüglich der Reihenfolge von Skript-Tags und Meta-Tags im Kopf des HTML-Dokuments schwebt. Ich habe das nicht bestätigt, aber hier ist trotzdem ein Link: Was den Fehler verursacht "Code kann nicht ausgeführt werden von einem freigestellten Skript "

Ich kenne auch die Lösung für dieses Problem, also poste ich es unten

    
Halcyon 28.04.2011, 00:12
quelle

3 Antworten

16

Zuerst müssen Sie die Quelle der Nachricht finden.

IE ist bekannt für seine miserablen Fehlermeldungen, aber zum Glück scheint IE9 etwas in der Lage zu sein. Wenn dieser Fehler in IE6, IE7 oder IE8 auftritt, wird es auch in IE9 auftreten, also benutze IE9 um zu debuggen (für deine Gesundheit)

Öffnen Sie die Webentwicklungskonsole in IE9 (drücken Sie F12) und führen Sie die Schritte durch, um diesen Fehler zu erzeugen.

IE9 sollte Ihnen jetzt eine Datei- und Zeilenanzeige auf der Konsole geben, yay!

Was typischerweise schief geht, ist ein Callback, der nach einer gewissen Verzögerung entweder durch setTimeout oder aufgrund einer Ajax-Anfrage ausgeführt wird. Wenn das Fenster, das Dokument oder der Frame im Callback als Callback definiert ist, erhalten Sie diese Nachricht, wenn Sie versuchen, Ihre Callback-Funktion auszuführen.

Scheinbar ignorieren andere Browser dieses Problem, was gut ist, denke ich. Um den IE gleich zu machen, wickle einfach den Callback in einen try-catch-Block (ich weiß nicht, was der Callback bewerten würde, ich glaube nicht, dass er zu undefiniert ausgewertet wird). Wenn Sie eine genauere Fehlerbehandlung wünschen oder wenn Sie tatsächlich etwas unternehmen möchten, können Sie das wahrscheinlich tun und bitte hier einen Post schreiben, weil ich neugierig bin, welche Art von Anwendungsfall das wirklich erfordern würde.

>     
Halcyon 28.04.2011, 00:18
quelle
0

Wenn Sie eine Seite haben, die mehrere Frames verwendet, wird dieser Fehler möglicherweise dadurch verursacht, dass in einem Frame initialisierte Objekte in einem anderen Frame verwendet werden, nachdem das ursprüngliche Frame von der Seite entfernt wurde.

Wenn das passiert, können Sie je nach Situation Folgendes tun:

  • Überprüfen Sie Ihren Code auf mögliche Speicherlecks
  • Wenn diese Objekte einige Daten darstellen, die Sie tun tatsächlich zwischen Frames übergeben möchten, dann sollten Sie stattdessen ihr stringifiziertes Formular verwenden.
M. Prokhorov 25.01.2017 17:20
quelle
-2

Die Lösung - stellen Sie sicher, dass Sie alle META-Anweisungen VOR irgendwelchen Skriptanweisungen platzieren.

    
Mark Findlay 25.05.2012 18:19
quelle