由于错误80020101,无法完成操作.IE

时间:2012-06-05 19:53:59

标签: javascript internet-explorer

  

可能重复:
  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);
}

但是当我尝试执行clearTimeout时,它只会在IE中出现错误。 任何想法????

5 个答案:

答案 0 :(得分:34)

我不知道为什么但它对我有用。如果你有像

这样的评论
//Comment

然后它给出了这个错误。要解决此问题

/*Comment*/

没有意义,但它对我有用。

答案 1 :(得分:32)

所有错误80020101意味着在评估JavaScript时存在某种错误。如果您通过Ajax加载JavaScript,评估过程就特别严格。

有时删除 // 会解决问题,但反之则不正确......问题并不总是由 // 引起。

查看Ajax调用返回的确切JavaScript,并查找该脚本中的任何问题。有关详细信息,请参阅此处的精彩文章

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

答案 2 :(得分:5)

将整个代码块包装在此:

//<![CDATA[

//code here

//]]>

还要确保将脚本类型指定为text / javascript

尝试一下,让我知道它是怎么回事

答案 3 :(得分:2)

如果使用IE9,请关闭兼容性视图。

答案 4 :(得分:0)

什么时候调用timerReset()?也许你在setTimeout()已经完成它之后尝试调用它时会出现错误?

将其包装在

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

编辑:实际上,经过进一步反思,因为你确实提到了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);
}