【问题标题】:How to deal with ie8 jquery object doesn't support this property or method Error?如何处理ie8 jquery object does not support this property or method Error?
【发布时间】:2011-03-02 21:38:42
【问题描述】:

这并不表示我的 javascript 代码中有任何错误,但在下载的 jquery.js 文件中,这是一个重命名的缩小 jquery 1.3.2 文件。

我正在测试一些 js 代码,在 IE8 中可以在 firefox 和 google chrome 中 100% 运行,然后将其滚动到生产服务器。

但是 jquery 库本身在 IE8 内部似乎存在问题。

我什至尝试下载 1.3.2 jquery 的新副本,并使用它而不是缩小版本,但仍然出错。

然后我尝试使用托管在 code.jquery.com 上的 cdn,但在让我的代码工作或不工作之前它仍然出错。

它似乎在 IE8 中部分工作,但我们开发服务器上的其他 jquery 部分工作,并不断重复,“对象不支持此属性或方法”

是否有在 IE8 中运行最好的特定 jquery 版本?至少这样我可以看到我的代码在 IE8 中是否存在问题?

或者有没有 IE8 不支持的 jquery 函数列表?

附:另外,我考虑升级到IE9,看看是否有同样的问题,但你不能下载IE9,对于WinXP,这很糟糕。我只是喜欢WinXP,升级的机会很小。在我有 XP 之前,我的工作电脑上安装了 Vista,这真的很糟糕。

对不起,小发泄,只是试图让这段代码正常工作并且没有错误......

谢谢。


来自评论

<!--- Include jQuery --->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" charset="utf-8"></script> 

【问题讨论】:

  • 我遇到了类似的问题,发现我必须在我的应用程序中明确引用 json2.js 的本地副本才能使其在 IE8 中正常工作。
  • 你需要那个旧版本的jQuery吗?哪一行代码给了你错误?你能贴出你用来加载jQuery的&lt;script&gt;标签吗?
  • ATM,我正在尝试最新的,我只是将其重新定位到页脚。
  • 您在charset 属性之前有一个杂散的;

标签: jquery internet-explorer-8


【解决方案1】:

当我使用 xxx.trim() 而不是 $.trim(xxx) 时,我遇到了这个问题。一旦我切换,这个问题就消失了。

【讨论】:

  • 谢谢,我在 IE8 和 jQuery 1.6.2 上仍然遇到同样的错误,完全头疼,不知道我需要多长时间才能弄清楚。该死的IE。
【解决方案2】:

注意:有些人也可能通过尝试将 jQuery 2 与 IE8 一起使用来到达此页面。 jQuery 2 放弃了对 IE8 的支持(参见:http://jquery.com/browser-support/)。

如果需要支持 IE8,请使用最新版本的 jQuery 1

【讨论】:

    【解决方案3】:

    根据我的经验,无论您运行的版本是什么,jQuery 都很少成为问题,我通常会做的是禁用|删除您在网站上运行的任何其他 javascript (除了 jquery),然后开始与 jquery 一起启用 1 by 1,一旦找到错误所在的位置,尝试调试该脚本,过去真正有用的一件事是执行 jslint 或 jshint,如果你是不熟悉这些工具,它们是可以帮助您验证代码并建议您改进一些语句的工具,基于以前的开发人员经验,JSLint 是一个更严格的工具,我认为 JSHint 会帮助您更多一点在某些方面它更宽容一些。

    如果有帮助,请告诉我,同时尝试安装 IE8 开发者工具 :)

    【讨论】:

    • 当错误被抛出并且调试器因错误而中断时,重复单击“step out”按钮,直到调试器显示您编写的代码。这将使您了解您的代码在哪里出现问题,并且应该让您了解应用程序在引发错误时所处的状态。
    【解决方案4】:

    基本上我的代码中有一个奇怪的问题,关于声明一个变量。

    所以这与 jquery 加载无关,但它不会以任何方式显示与我的代码中的一行相关的错误消息。

    只要我在逻辑上方声明变量,它就可以正常工作,没有错误。

    感谢大家的尝试。

    【讨论】:

    • 肯定是奇怪的修复。我遇到了类似的情况(ie8 中的脚本),您的解决方案在这里,只需输入var ,也解决了我的问题。这也很奇怪,因为插件代码中有多个变量(我有问题的代码/函数),只有第一个 object 抛出错误。我只在第一个添加了var= ,并且不再抛出异常。
    【解决方案5】:

    可能有很多原因,但我遇到了同样的错误,我正在使用

    .html().trim();
    

    当我把它改成

    .html()+""; 
    

    它解决了这个问题。检查错误行,如果您在 .html() 之后使用 .trim(),请将其删除。

    【讨论】:

      【解决方案6】:

      我遇到了同样的问题,在我的情况下是由在 ie8 中将 trim() 链接到 text() 函数引起的

      违规代码原为 $("td:eq(n)", this).text().trim();

      改为: $.trim(("td:eq(n)", this).text());

      现在工作。

      【讨论】:

        【解决方案7】:

        我遇到了一个名为 form 的变量的问题,更改那个小东西修复了它。

        【讨论】:

          【解决方案8】:

          如果您尝试在带有 jquery 的回调上使用 ES5 .bind,也会发生这种情况。

          $('#ref').on('click', function() { 
              // do stuff 
          }.bind(this));
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-12-03
            • 1970-01-01
            • 2020-10-10
            • 1970-01-01
            • 2021-06-12
            • 2022-11-09
            相关资源
            最近更新 更多