IE10和jQuery:SCRIPT5009:“$”未定义

时间:2013-06-02 11:57:01

标签: jquery internet-explorer internet-explorer-10

我遇到了这个非常烦人的问题,它出现在IE10中,就像在IE9中一样。鉴于此HTML:

<head>
    <title>Any Consult</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="styles.css" />
    <!--[if lte IE 9]>
        <script src="scripts/IE9.js"></script>
    <![endif]-->
    <script type="text/javascript" src="scripts/jquery.js"></script>
    <script type="text/javascript" src="scripts/scripts.js"></script>
</head>

这个(scripts.js)在FF和Chrome中工作正常,但是IE10会抛出SCRIPT5009错误。

scripts.js就像(简单但经过测试的例子):

$(document).ready(function() {
   alert('Hello');
});

IE10没有加载jQuery-File,我几乎尝试了所有东西。我更改并减少了文件名,我省去了

<!--[if lte IE 9]>...

部分,我试过了

src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.0.min.js"

但没有发生任何事。因为这是this question的新版本,所以我想指定:

  1. 我应该如何为IE(10)命名jQuery-File?
  2. 我应该在哪里将脚本标记放在HTML-Header中?
  3. 非常感谢!

    编辑: 这里建议的HTML版本也不起作用:

    <script type="text/javascript" src="scripts/jquery.js"></script>
    <script type="text/javascript" src="scripts/scripts.js"></script>
    <script type="text/javascript" src="scripts/clocks.js"></script>
    <!--[if lte IE 9]>
        <script src="scripts/IE9.js"></script>
    <![endif]-->
    <!--[if IE]><script type="text/javascript" src="scripts/excanvas.js"></script><![endif]-->
    

    IE9.js是一个浏览器polyfill文件。

    这是我的截图(“ist undefiniert”表示“未定义”,“Die Webseite reagiert nicht”表示“页面已关闭”,“Debugger beenden”表示“停止调试”,$('。aLang')是我的HTML中的一个类。

    Screenshot IE10 Bug Report

2 个答案:

答案 0 :(得分:8)

我有IE的这个问题,发现IE开发人员工具中的jQuery javascript文件已损坏。在我的情况下,这是由服务器完成HTTP GZIP压缩引起的,但是IE没有解压缩文件。我想如果你关闭静态HTTP压缩或从正在进行压缩的任何东西中排除application / x-javascript(我的FluorineFX完成了10Kb以上的所有文件),一旦你清除了浏览器缓存以摆脱它,它应该可以正常工作压缩的javascript文件。

答案 1 :(得分:3)

将条件脚本放在 jQuery库之后:

<script type="text/javascript" src="scripts/jquery.js"></script>
<!--[if lte IE 9]>
<script src="scripts/IE9.js"></script>
<![endif]-->