首页 文章

Internet Explorer 8中的jQuery问题

提问于
浏览
78

我试图让我的jQuery函数在IE8上运行 . 我正在从Google的服务器(http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js)加载库 .

永远不会调用 $(function(){}) . 相反,我收到错误 Object expected . 我打开了开发人员并在控制台中运行 typeof $ ,它出现了 undefined .

我曾尝试去其他我知道使用jQuery(jquery.com)的网站,这些都有用,有什么我可能会在这里缺少的吗?

20 回答

  • 2

    在定义变量之前,在变量之前写下“var” . IE8在没有“var”时死掉 .

  • 10

    更正:

    检查您的脚本包含标记,是否正在使用

    type="application/javascript" src="/path/to/jquery"
    

    改成

    type="text/javascript" src="/path/to/jquery"
    
  • 4

    我遇到了类似的问题 . 在IE7,Firefox和IE8中运行的东西在IE7兼容模式下运行;但不是'正常'的IE8 . 我的解决方案是将此代码放在 Headers 中

    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
    

    至于为什么jquery不在IE8中工作,我不清楚 .

  • 0

    解决方案是升级到最新版本的jQuery . 我有完全相同的问题,并升级到1.4.2,它在IE8中再次正常工作 .

    似乎完全向后兼容我所做的所有jQuery 1.3.2的东西,所以没有投诉!

  • 8

    我遇到了这个问题并尝试了这里提到的解决方案但没有成功 .

    最后,我意识到我使用 http URL 链接到脚本的Google CDN版本,而嵌入脚本的页面是 https page .

    这导致 IE 无法加载jquery(它会提示用户是否只想加载安全内容) . 更改Google CDN网址以使用https方案为我解决了问题 .

  • 0

    有些人在这篇文章上磕磕绊绊可能会遇到jquery和IE8这个问题,因为他们正在使用> = jQuery v2 . 使用此代码:

    <!--[if lt IE 9]>
        <script src="jquery-1.9.0.js"></script>
    <![endif]-->
    <!--[if gte IE 9]><!-->
        <script src="jquery-2.0.0.js"></script>
    <!--<![endif]-->
    
  • 38

    如果您在站点上使用HTTPS,则需要从Googles https服务器加载jQuery库 . 试试这个:https://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js(或最新的https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js

  • 1

    jQuery没有加载,这可能不是特定于IE8 . 检查jQuery包含的路径 . 声明 . 或者更好的是,将以下内容用于CDN:

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js">
    </script>
    
  • 1

    我正在修复由忘记包含doctype的其他人创建的模板 .

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    

    如果你没有声明 doctype IE8 在Quirks模式下做了奇怪的事情 .

  • 1

    引发错误 Object expected ,因为未加载Jquery . 这是因为浏览器安全(通常是IE),它不允许您执行外部JavaScript源代码 . 您可以通过以下方式更正此问题

    • 1:更改浏览器安全级别以允许执行外部JavaScript代码 . 你可以找到how to do this here

    要么

    • 2:将jquery源代码复制粘贴到您的网页中,这样就不会将其视为外部脚本 .

    我更喜欢第一种解决方案 .

  • 2

    onload事件并不总是在 <head> ... </head> <head> ... </head> 上工作

    您可以通过在页面末尾添加onload脚本来强制它,如下所示 .

    <script>
        window.onload();
      </script>
    </body>
    
  • 42

    也许你插入两个脚本,它应该是工作 .

    <script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.js"></script>  
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js">/script>
    
  • 39

    这修复了我在IE8中的问题:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    

    在localhost上运行,我不得不将 https:// 更改为 http://

    如果我尝试浏览安全链接,我会收到 Internet Explorer cannot display the webpage 友好警告 .

    如果有问题,请务必先在浏览器中加载文本脚本!

  • 12

    我遇到了同样的问题 .

    我解决了它验证IE8未正确配置以到达SRC URL .

    我改变了这个,它运作正常 .

  • 0

    也许你已经inPrivate Filtering开启?

  • 6

    我遇到过同样的问题 . 解决方案是将链接添加到JQuery文件中作为IE中的可信站点 .

  • 4

    我认为你和我有同样的问题:

    Message: Permission denied
    Line: 13
    Char: 27021
    Code: 0
    URI: http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.3.2.min.js
    

    因为跨域引用 . 尝试在同一个域上托管jquery.js .

  • 6

    简而言之,这是因为IE8解析引擎 .

    猜猜为什么微软也无法使用新的HTML5标签(如“部分”)?这是因为MS决定他们不会像世界其他地方那样使用常规的XML解析 . 是的,这是对的 - 他们对XML进行了大量的宣传,但最终,他们又回到了一个“愚蠢”的解析引擎上寻找“已知标签”,并在出现新事物时弄乱了东西 .

    对于IE8和"load","get"和"post"的jquery问题也是如此 . 再次,微软决定"walk their own path"与版本8.希望他们在IE9中解决(d)这个问题,目前唯一的选择是使用 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 回退IE7解析 .

    哦......好吧,微软让我们再次在论坛上发布了一些内容 . ;)

  • 2

    在我的情况下,解决方案是从您尝试访问的URL中取出任何特殊字符 . 我有一个波浪号(〜)和一个百分比符号,$ .get()调用无声地失败 .

  • 5

    好!我知道jQuery正在加载 . 我知道 jQuery.textshadow.js 正在加载 . 我可以在Developer Tools中找到这两个脚本 .

    奇怪的部分:此代码在内容区域中工作,但不在 Banner 中 . 即使有专门的 fixIE.css . 和当我把css内联时,它工作 . (那当然会弄乱FireFox . )

    我甚至在 Banner 中的文本字段周围放入条件IE浏览器,没有运气 .

    我发现没有区别,并且 jquery-1.4.2.min.jsjquery-1.2.6.min.js 都有相同的错误 . jquery.textshadow.js 是从jQuery网站下载的,同时试图找到解决此问题的方法 .

    这不会发布到网站上

相关问题