Depuis la mise à niveau vers Firefox 4.0, j'ai remarqué que je reçois parfois une erreur dans la console indiquant:
tenter d'exécuter un script de compilation-et-aller sur une étendue effacée
La seule information que je puisse trouver à ce sujet sur le net est actuellement sur le forum des groupes mozilla , où il est suggéré que cela soit lié à la restauration de session. Dans mon cas, même si je n'ai pas pu reproduire l'erreur de manière fiable, cela se produit à tout moment, pas seulement après une restauration.
Quel est le problème? Comment puis-je arrêter l'erreur?
Pour moi (Firefox 11, Firebug 1.9.1), cela se produit parfois après avoir actualisé la page (F5 ou CTRL + F5) alors que le débogueur est suspendu sur un point d'arrêt.
La solution semble être de continuer l'exécution du script, et rafraîchir la page uniquement lorsque Firebug est pas en pause.
Dans mon cas, c'était document.write
méthode à l'origine du problème sur Firefox 4, 5, 6 sous Windows. Les versions Linux ne sont pas affectées. Ce que je devais faire, c'est écraser document.write
méthode.
Je sais que document.write
ne devrait pas être utilisé de nos jours, mais deployJava.js
, un standard Java Script de déploiement d'applet écrit par Sun/Oracle, l'utilise. Google l'utilise dans les annonces Google AdSense. document.write
est partout.
<script>
var documentWriteOutput = '';
var got = document.write;
document.write = function(arg) { documentWriteOutput += arg; }
</script>
<script src="badScriptThatIsUsingDocumentWrite.js"></script>
<script>
runBadScriptThatIsUsingDocumentWrite();
document.write = got;
// Do whatever you want with the documentWriteOutput
// e.g. $('#somewhere').html(documentWriteOutput);
</script>
J'espère que ça aide. Cependant, j'ai vu beaucoup de "solutions" sur Internet qui ne fonctionnaient pas pour moi. Cela peut signifier que "Tenter d'exécuter un script de compilation et de lancement sur une étendue effacée" est un problème/bogue du moteur JavaScript de Firefox.
J'ai remarqué que cette erreur peut se produire si vous écrivez dans le document avec document.write après le chargement du document (par exemple dans une fonction appelée à partir de la méthode $ (document) .ready () de JQuery). Lorsque cela se produit, il semble que Firefox supprime l'ancien document et en écrit un nouveau. Je ne sais pas si c'est un nouveau comportement ou non. Il semble que lorsque vous essayez d'opérer sur l'ancien document, par ex. avec les sélecteurs JQuery, vous obtenez cette erreur. Pour moi, la correction du script en question pour ne pas appeler document.write après le chargement du document a corrigé l'erreur.
J'ai remarqué que si je désactive le cache, je n'obtiens plus cette erreur dans la console.
L'erreur ne se produit pas si Firebug (dans mon cas 1.8) est désactivé.
j'ai aussi eu ce problème mais j'ai fait une réinstallation propre de FireFox.
après cela, l'erreur a disparu.
J'ai obtenu cette erreur lorsque j'ai essayé d'ajouter des événements sur des éléments ajoutés à partir d'un même domaine iframe. Clone () ajouté et erreurs arrêtées.
Vérifiez votre code pour le méta-contrôle de cache dupliqué et supprimez l'un d'eux:
<meta http-equiv="cache-control" content="no-cache" />
Cela n'a rien à voir avec Firebug. La raison pour laquelle il "disparaît" lorsque le firebug est désactivé est que vous ne voyez plus l'exception. La cause de cela est d'avoir un gestionnaire attaché à un événement qui est maintenant nul mais pas correctement nettoyé. Vous devez vous assurer que le gestionnaire est correctement supprimé, sinon l'événement déclenche toujours la référence au gestionnaire.
C'est: menu Firebug -> Console -> Afficher Chrome Erreurs
éteindre, fin de l'histoire;)