web-dev-qa-db-fra.com

Impossible de terminer l'opération en raison d'une erreur 80020101. IE

Duplicate possible:
problème de demande Ajax: erreur 80020101

J'utilise JQuery-1.64 et c'est mon code pour réinitialiser le chronomètre

var message="Logged in";
var myTimeout = setTimeout("timerDone()",1000 * 1440);
function timerDone()
{
    message="Logged out";   
}
function timerReset()
{


    clearTimeout(myTimeout);
    myTimeout = setTimeout("timerDone()", 1000 * 1440);
}

Mais cela me donne une erreur, uniquement dans IE, lorsque j'essaie de faire clearTimeout. Une idée????

34
Asif Alamgir

Je ne sais pas pourquoi mais cela a fonctionné pour moi. Si vous avez des commentaires comme

//Comment

Ensuite, il donne cette erreur. Pour résoudre ce problème

/*Comment*/

Cela n'a pas de sens mais cela a fonctionné pour moi.

36
Asif Alamgir

Toute l'erreur 80020101 signifie qu'il y a eu une erreur, de quelque sorte, lors de l'évaluation de JavaScript. Si vous chargez ce code JavaScript via Ajax, le processus d'évaluation est particulièrement strict.

Parfois, supprimer // résoudra le problème, mais l'inverse n'est pas vrai ... le problème n'est pas toujours causé par // .

Examinez le code JavaScript exact renvoyé par votre appel Ajax et recherchez les problèmes éventuels dans ce script. Pour plus de détails voir un excellent article ici

http://mattwhite.me/blog/2010/4/21/tracking- down-error-80020101-in-internet-exploder.html

32
Eric J.

enveloppe tout votre bloc de code dans ceci:

//<![CDATA[

//code here

//]]>

assurez-vous également de spécifier le type de script text/javascript.

essayez et laissez-moi savoir comment ça se passe

5
Chris Brickhouse

Désactivez l'affichage de la compatibilité si vous utilisez IE9.

2
Slava

quand appelez-vous timerReset ()? Peut-être avez-vous cette erreur en essayant de l'appeler après que setTimeout () l'ait déjà fait?

envelopper dans

if (window.myTimeout) { 
  clearTimeout(myTimeout);
  myTimeout = setTimeout("timerDone()", 1000 * 1440);
}

edit: En fait, après réflexion, puisque vous avez mentionné jQuery (et pourtant vous n’avez pas de code jQuery réel ici ... Je me demande si vous avez ceci imbriqué dans un certain jQuery (comme dans un $(document).ready(.. et c'est une question de portée variable. Si oui, essayez ceci:

window.message="Logged in";
window.myTimeout = setTimeout("timerDone()",1000 * 1440);
function timerDone()
{
    window.message="Logged out";   
}
function timerReset()
{


    clearTimeout(window.myTimeout);
    window.myTimeout = setTimeout("timerDone()", 1000 * 1440);
}
0
Crayon Violent