Fehler: Versuch, das Compile-and-Go-Skript in einem gelöschten Bereich auszuführen

Lesezeit: 3 Minuten

Seit dem Upgrade auf Firefox 4.0 ist mir aufgefallen, dass ich gelegentlich eine Fehlermeldung in der Konsole erhalte, die besagt:

Versuchen Sie, das Compile-and-Go-Skript in einem freigegebenen Bereich auszuführen

Die einzigen Informationen, die ich dazu im Netz finden kann, sind derzeit auf der Mozilla-Gruppen-Forum, wo vorgeschlagen wird, dass es etwas mit der Sitzungswiederherstellung zu tun hat. In meinem Fall konnte ich den Fehler zwar nicht zuverlässig reproduzieren, aber er tritt jederzeit auf, nicht nur nach einer Wiederherstellung.

Was ist das Problem? Wie stoppe ich den Fehler?

  • Nur eine Frage: Manipulieren Sie untergeordnete Fenster in Ihrem Skript mit window.open?

    – Bitte behandeln Sie Ihre Mods gut.

    25. März 2011 um 14:22 Uhr

  • So wie es aussieht scheint es ein echter Bug zu sein. Es ist die Rede davon, dass dies in der nächsten Bugfix-Version verschwinden wird.

    – Bitte behandeln Sie Ihre Mods gut.

    25. März 2011 um 17:24 Uhr

  • @Rodrigo, hast du einen Link zu einer Quelle?

    – Nickf

    25. März 2011 um 17:59 Uhr

  • Es gibt einige neuere Bugzilla-Einträge, die auf solche Fehler verweisen, wie z bugzilla.mozilla.org/show_bug.cgi?id=635548.

    – Bitte behandeln Sie Ihre Mods gut.

    25. März 2011 um 18:32 Uhr

  • Das passierte mir, als ich die Webseite mit sich selbst verknüpfte.

    – Brainjam

    29. März 2011 um 18:13 Uhr

Bei mir (Firefox 11, Firebug 1.9.1) passiert es manchmal, nachdem ich die Seite aktualisiert habe (entweder F5 oder STRG+F5), während der Debugger an einem Haltepunkt angehalten wurde.

Die Lösung scheint darin zu bestehen, die Ausführung des Skripts fortzusetzen, und Aktualisieren Sie die Seite nur, wenn Firebug ist nicht angehalten.

Benutzer-Avatar
Nowaker

In meinem Fall war es so document.write Methode, die das Problem bei Firefox 4, 5, 6 unter Windows verursacht. Linux-Versionen sind nicht betroffen. Was ich tun musste, ist zu überschreiben document.write Methode.

Das ist mir bewusst document.write sollte heutzutage nicht mehr verwendet werden, aber deployJava.js, ein Standard-Java-Applet-Bereitstellungsskript, das von Sun/Oracle geschrieben wurde, verwendet es. Google verwendet es in Google AdSense-Anzeigen. document.write ist überall.

<script>
    var documentWriteOutput="";
    var got = document.write;
    document.write = function(arg) { documentWriteOutput += arg; }
</script>
<script src="https://stackoverflow.com/questions/5433415/badScriptThatIsUsingDocumentWrite.js"></script>
<script>
    runBadScriptThatIsUsingDocumentWrite();
    document.write = got;
    // Do whatever you want with the documentWriteOutput
    // e.g. $('#somewhere').html(documentWriteOutput);
</script>

Ich hoffe das hilft. Ich habe jedoch viele “Lösungen” im Internet gesehen, die bei mir nicht funktioniert haben. Das kann es bedeuten “Versuch, das Compile-and-Go-Skript in einem gelöschten Bereich auszuführen” ist ein Problem/Bug der Firefox-JavaScript-Engine.

Ich habe festgestellt, dass dieser Fehler auftreten kann, wenn Sie mit document.write in das Dokument schreiben, nachdem das Dokument vollständig geladen wurde (z. B. in einer Funktion, die von der $(document).ready()-Methode von JQuery aufgerufen wird). In diesem Fall scheint Firefox das alte Dokument zu verwerfen und ein neues zu schreiben. Ich weiß nicht, ob das ein neues Verhalten ist oder nicht. Es scheint, dass Sie diesen Fehler erhalten, wenn Sie versuchen, mit dem alten Dokument zu arbeiten, z. B. mit JQuery-Selektoren. Für mich hat das Korrigieren des fraglichen Skripts, document.write nicht aufzurufen, nachdem das Dokument geladen wurde, den Fehler behoben.

  • Das Verwerfen ist immer passiert, wenn Sie verwenden document.write nach Belastung. Allerdings ist der “cleared scope”-Fehler neu (und offenbar nicht nur durch document.write verursacht).

    – Matthäus Flaschen

    1. Oktober 2011 um 14:57 Uhr

  • Ich habe das gleiche Problem mit Ereignissen, die ich nach einem document.write an das Fenster anhänge. (Siehe auch meine Antwort auf diese Frage: stackoverflow.com/a/8673541/24197)

    – Sprugmann

    5. Januar 2012 um 21:08 Uhr

Mir ist aufgefallen, dass ich diesen Fehler in der Konsole nicht mehr bekomme, wenn ich den Cache deaktiviere.

Der Fehler tritt nicht auf, wenn Firebug (in meinem Fall 1.8) deaktiviert ist.

  • Jawohl. Ich denke, das hängt mit Firebug und Firefox zusammen

    – häufig

    25. März 2012 um 22:05 Uhr

Benutzer-Avatar
Eneas Gesing

Überprüfen Sie Ihren Code auf doppelte Meta-Cache-Steuerung und entfernen Sie eine davon:

<meta http-equiv="cache-control" content="no-cache" />

  • Jawohl. Ich denke, das hängt mit Firebug und Firefox zusammen

    – häufig

    25. März 2012 um 22:05 Uhr

Benutzer-Avatar
Benutzer1046787

Ich hatte dieses Problem auch, aber ich habe eine saubere Neuinstallation von FireFox durchgeführt.

danach war der fehler weg.

1039450cookie-checkFehler: Versuch, das Compile-and-Go-Skript in einem gelöschten Bereich auszuführen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy