Вопрос по internet-explorer, javascript – Не удалось завершить операцию из-за ошибки 80020101. IE [duplicate]

32

Possible Duplicate:
Ajax request problem: error 80020101

Я использую JQuery-1.64, и это мой код для сброса таймера

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


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

Но это дает мне ошибку, только в IE, когда я пытаюсь сделать clearTimeout. Любая идея????

Ваш Ответ

5   ответов
2

Отключите представление совместимости, если вы используете IE9.

И попросить своих пользователей сделать то же самое?
Я мог бы попробовать это, но я не могу подтвердить это с вами больше, потому что мы уже запустили сайт. Но это может сработать, хотя Asif Alamgir
5

оберните весь блок кода в это:

//<![CDATA[

//code here

//]]>

также убедитесь, что вы указали тип скрипта text / javascript

попробуйте это и дайте мне знать, как это происходит

34

Я не знаю почему, но у меня это сработало. Если у вас есть комментарии, такие как

//Comment

Тогда это дает эту ошибку. Чтобы это исправить

/*Comment*/

Не имеет смысла, но это сработало для меня.

Спасибо. Также удалите все запятые в массиве параметров JavaScript.
0

вы получаете эту ошибку при попытке вызвать ее после того, как setTimeout () уже сделал свое дело?

завернуть в

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

edit: На самом деле, после дальнейшего размышления, так как вы упомянули jQuery (и все же у вас нет никакого реального кода jQuery здесь ... Интересно, есть ли у вас это вложенное в некотором jQuery (как внутри$(document).ready(.. и это вопрос переменной области. Если так, попробуйте это:

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

что при оценке JavaScript была какая-то ошибка. Если вы загружаете этот JavaScript через Ajax, процесс оценки будет особенно строгим.

Иногда удаляя// исправит проблему, но обратное неверно ... проблема не всегда вызвана//.

Посмотрите на точный JavaScript-код, возвращаемый вашим Ajax-вызовом, и найдите все проблемы в этом скрипте. Для более подробной информации смотрите отличную рецензию здесь

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

последовал за этим и все заработало :)
Пример: если вы загружаете частичный HTML-документ и добавляете его в свой документ (например, с помощью AngularJS), который имеет тег script, это может помочь, включая прямые скрипты JavaScripts

Похожие вопросы