【问题标题】:"Object expected" error using jQuery only in IE8仅在 IE8 中使用 jQuery 的“预期对象”错误
【发布时间】:2013-08-03 22:26:50
【问题描述】:

我只在 IE 中遇到错误(v8,我不知道它是否发生在较旧的 IE 版本中,但它不会发生在 Chrome 或 Firefox 中)当我使用 IE 开发工具时,我会收到以下消息调试器:

Breaking on JSScript runtime error - Object Expected

这是我受影响的代码:

$('#deviceProfileSelection').change(function() { //affected line!!!!
// rest of my code...
});

这个元素#deviceProfileSelection定义如下:

<select id="deviceProfileSelection">
   <option value=""><?php echo getSysMessage("dropDownSelect")?></option>
   <!-- and other values...-->
</select>

我已经尝试将 .change 侦听器定义为 $(document).ready(function () {});,但完全没有成功。还有什么想法吗?

编辑

我试图使用 PHP 决策结构包含一个 div,如果条件为真,它应该打印一个 div。但是,实际上它没有打印,我的意思是,它没有打印开始标签“div”,只打印结束标签“div”。

浏览器可以解释这个错误,但是 IE8 和这个 IE 无法导致问题。

【问题讨论】:

  • 在尝试调用$之前,您是否在页面中包含了 jQuery?
  • 你用的是什么版本的jQuery?
  • 请注意 jQuery v2.x 不支持 IE8。如果您有 jQuery v2,则需要改用 v1.x。
  • 你能展示一下这个函数里面的代码吗?

标签: javascript jquery html internet-explorer internet-explorer-8


【解决方案1】:

检查以下内容:

  1. 执行此代码时是否包含 jQuery? (我会在$ 上发出警报,看看你会得到什么)
  2. 确保deviceProfileSection 元素存在。

【讨论】:

    【解决方案2】:

    我之前用IE8也遇到过类似的问题,如果是同样的问题,就是找不到jquery库,检查你的路径或者用cdn测试一下

    【讨论】:

    • 不,肯定已经包含在内了。我可以正常使用其他元素。
    【解决方案3】:

    我在 IE8 中尝试了以下代码,它的工作方式与预期一样。正如其他答案中所建议的,我使用了与 JQuery CDN 中的 IE8 兼容的最新版本的 JQuery。不要使用 2.x - 它不适用于旧版浏览器。此外,请确保您的更改事件代码位于 document.ready 处理程序中。

    <html>
        <head>
            <title>IE8 Object Expected</title>
            <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
            <script type="text/javascript">
                $(function(){
                    $("#deviceProfileSelection").change(function(){
                        console.log("#deviceProfileSelection changed to " + $(this).find(":selected").text());
                    });
                });
            </script>
        </head>
        <body>
            <form>
                <select id="deviceProfileSelection">
                    <option value="">Select...</option>
                    <option value="1">One</option>
                    <option value="2">Two</option>
                    <option value="3">Three</option>
                </select>
            </form>
        </body>
    </html>
    

    【讨论】:

      【解决方案4】:

      问题是您根本没有将 jQuery 添加到您的代码中。 在&lt;head&gt; 标签内添加以下内容:

      <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
      

      这应该可以解决您的问题。

      【讨论】:

      • 天啊,完美运行!我试图使用 php 决策结构包含一个 div,如果条件为真,它应该打印一个 div。但是,实际上它没有打印,我的意思是,它没有打印开始标签“div”,只打印结束标签“div”。
      • Chrome 和 Firefox 会忽略这个“未打开”的 div,这就是我看不到错误的原因。
      【解决方案5】:

      以免有人重复我的错误,因为您使用的是来自外部网站 (src="http://code.jquery.com/jquery-1.10.2.min.js") 的 jquery,请确保您的互联网正常运行

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-01
        • 2010-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多