38 votes

"Dépassement de pile en ligne 0" sous Internet Explorer

Je constate que ce n'est pas l'endroit idéal pour poser des questions sur ce en termes de recherche, mais j'ai une page dont le code JavaScript jette "débordement de Pile dans la ligne 0" erreurs quand je la regarde dans Internet Explorer.

Le problème est tout à fait clairement pas dans la ligne 0, mais quelque part dans la liste des trucs que je suis en train d'écrire le document, mais je ne peux pas pour la vie de moi où est le problème. Tout fonctionne bien sous Firefox, donc je n'ai pas les plaisirs de Firebug et amis pour les aider à résoudre les problèmes.

Il n'existe aucun standard de causes pour cela? Je devine que c'est probablement un Internet Explorer 7 bug ou quelque chose d'assez obscure, et mon Google-fu me porte peu de joie à l'heure actuelle. Je peux trouver beaucoup de gens qui ont couru en avant, mais je n'arrive pas à trouver comment ils l'ont résolu.

32voto

Ross Boucher Points 598

J'ai rencontré ce problème récemment et a écrit un post sur le cas particulier de notre code qui a été à l'origine de ce problème.

http://cappuccino.org/discuss/2010/03/01/internet-explorer-global-variables-and-stack-overflows/

Le résumé est: la récursivité, qui passe par l'accueil global de l'objet est limité à une pile profondeur de 13. En d'autres termes, si la référence de votre fonction d'appel à l'aide (pas nécessairement la fonction elle-même) a été définie avec une certaine forme de la fenêtre.foo = function, puis recursing par foo est limitée à une profondeur de 13 ans.

20voto

glenatron Points 5897

Aha!

J'ai eu un événement OnError() dans un code qui définissait la source de l'image sur un chemin d'image par défaut s'il n'était pas trouvé. Bien sûr, si le chemin de l'image par défaut n'était pas trouvé, le gestionnaire d'erreurs serait déclenché ...

Pour les personnes qui ont un problème similaire mais pas le même, je suppose que la cause en est probablement une boucle non terminée, un gestionnaire d’événements qui se déclenche ou quelque chose de similaire qui lance le moteur JavaScript en vrille.

17voto

Mitchel Sellers Points 38352

Vous pouvez désactiver l'option "Désactiver le débogage de script" dans Internet Explorer et lancer le débogage avec Visual Studio si vous en possédez déjà.

J'ai trouvé que c'était l'un des rares moyens de diagnostiquer certains de ces problèmes spécifiques à IE.

7voto

massoud Points 61

J'ai eu ce problème et je l'ai résolu. Il y avait un attribut dans la balise <%@ Page nommée MaintainScrollPositionOnPostback et après l'avoir supprimé, l'erreur disparaissait. Je l'ai ajouté avant pour empêcher le défilement après chaque publication.

3voto

devsnd Points 2718

Si vous êtes venu ici parce que vous avez eu le problème dans vos tests de sélénium: IE n'aime pas By.id("xyz") . Utilisez By.name, xpath ou ce que vous préférez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X