【问题标题】:Could not complete the operation due to error 80020101. IE [duplicate]由于错误 80020101 无法完成操作。IE [重复]
【发布时间】:2012-09-25 13:42:54
【问题描述】:

可能重复:
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 中给我一个错误。 有什么想法吗???

【问题讨论】:

    标签: javascript internet-explorer


    【解决方案1】:

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

    有时删除 // 会解决问题,但反之则不然……问题并不总是由 // 引起的。

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

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

    【讨论】:

    • 跟随这个并且它工作了:)
    • 一个例子:如果您加载部分 HTML 文档并将其添加到具有脚本标签的文档(例如使用 AngularJS)中,它可能有助于直接包含 JavaScript
    【解决方案2】:

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

    【讨论】:

    • 我可能已经尝试过,但我无法再与您确认,因为我们已经启动了该网站。但它可以工作
    • 并要求您的用户也这样做?
    【解决方案3】:

    我不知道为什么,但它对我有用。如果你有类似的cmets

    //Comment
    

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

    /*Comment*/
    

    没有意义,但对我有用。

    【讨论】:

    • 谢谢。同时删除 javascript 选项数组中的任何尾随逗号。
    【解决方案4】:

    将您的整个代码块包装在此:

    //<![CDATA[
    
    //code here
    
    //]]>
    

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

    试试看,然后告诉我结果如何

    【讨论】:

      【解决方案5】:

      什么时候调用 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);
      }
      

      【讨论】:

      • timerReset() 每当用户点击某物或页面加载时都会被调用。
      • 它没有用。我不确定是否是这个错误,即使 IE 指向它,因为当它加载时它应该显示手风琴标签,而它在 IE 中没有。此外,IE 由于某种原因指向 jQuery1.6 错误
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 2014-03-20
      相关资源
      最近更新 更多