36 Stimmen

Der Vorgang konnte wegen des Fehlers 80020101 nicht abgeschlossen werden. IE

Mögliches Duplikat:
Ajax-Anfrage Problem: Fehler 80020101

Ich verwende JQuery-1.64 und dies ist mein Code zum Zurücksetzen des Timers

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

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

Aber es gibt mir einen Fehler, nur in IE, wenn ich versuche, clearTimeout zu tun. Jede Idee????

38voto

Asif Alamgir Punkte 1444

Ich weiß nicht, warum, aber bei mir hat es funktioniert. Wenn Sie Kommentare haben wie

//Comment

Dann wird dieser Fehler angezeigt. Um dies zu beheben, tun Sie

/*Comment*/

Es macht zwar keinen Sinn, aber bei mir hat es funktioniert.

34voto

Eric J. Punkte 143512

Die Fehlermeldung 80020101 bedeutet lediglich, dass bei der Auswertung von JavaScript ein Fehler aufgetreten ist. Wenn Sie dieses JavaScript über Ajax laden, ist der Bewertungsprozess besonders streng.

Manchmal werden // wird das Problem beheben, aber das Gegenteil ist nicht der Fall... das Problem wird nicht immer durch // .

Sehen Sie sich das genaue JavaScript an, das von Ihrem Ajax-Aufruf zurückgegeben wird, und suchen Sie nach Problemen in diesem Skript. Weitere Einzelheiten finden Sie in einem großartigen Bericht hier

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

5voto

Chris Brickhouse Punkte 650

Verpacken Sie Ihren gesamten Codeblock in diesen:

//<![CDATA[

//code here

//]]>

Stellen Sie außerdem sicher, dass die Art des Skripts als Text/Javascript angegeben wird.

Versuchen Sie das und lassen Sie mich wissen, wie es läuft.

2voto

Slava Punkte 3347

Schalten Sie die Kompatibilitätsansicht aus, wenn Sie IE9 verwenden.

0voto

Crayon Violent Punkte 31424

Wann rufen Sie timerReset() auf? Vielleicht erhalten Sie diese Fehlermeldung, wenn Sie versuchen, die Funktion aufzurufen, nachdem setTimeout() ihre Aufgabe bereits erfüllt hat?

einwickeln

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

Bearbeiten: Eigentlich, nach weiterem Nachdenken, da Sie jQuery erwähnt haben (und doch haben keine tatsächlichen jQuery-Code hier ... Ich frage mich, ob Sie dies innerhalb einer jQuery verschachtelt haben (wie innerhalb einer $(document).ready(.. und dies ist eine Frage des variablen Umfangs. Wenn ja, versuchen Sie dies:

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);
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X