在Internet Explorer 8中的jQuery问题

我想让我的jQueryfunction在IE8上工作。 我正在从Google的服务器加载库( http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js )。

$(function(){})永远不会被调用。 相反,我得到一个错误Object expected 。 我打开了开发者,并在控制台中运行了typeof $ ,而且它的undefinedundefined

我试图去其他网站,我知道使用jQuery(jquery.com),这些都工作,有什么我可能会在这里失踪?

在定义variables前写下“var”。 IE8在没有“var”的情况下死亡。

更正:

检查你的脚本包括标签,是否使用

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

改成

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

我有一个类似的问题。 在IE6兼容模式下运行的IE6,Firefox和IE8的事情; 但不是在“正常”的IE8。 我的解决scheme是将此代码放在标题中

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

至于为什么jQuery不工作在IE8我不清楚。

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

似乎是完全向后兼容的所有jQuery 1.3.2的东西,我也做了,所以没有抱怨在这里!

我有这个问题,并试图在这里提到的解决scheme没有成功。

最终,我意识到我正在使用http URL链接到脚本的Google CDN版本,而embedded脚本的页面是https page

这导致IE不加载jquery(它会提示用户是否只加载安全内容)。 更改Google CDNurl以使用httpsscheme解决了我的问题。

有些人在这篇文章中磕磕绊绊可能会遇到这个问题,因为他们正在使用jQuery v2和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]--> 

如果您在您的网站上使用HTTPS,则需要从Google 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 )

jQuery没有被加载,这不可能特定于IE8。 检查你的jQuery包含的path。 声明。 或者更好的是,使用下面的CDN:

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

我正在修复由忘记包含文档types的其他人创build的模板。

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

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

由于未加载Jquery,因此Object expected会引发错误Object expected 。 这是因为浏览器的安全性(通常是IE),它不允许你执行外部javascript源代码。 您可以通过以下方法纠正此问题

  • 1:更改浏览器安全级别以允许执行外部JavaScript代码。 你可以在这里find如何做到这一点

要么

  • 2:将jquery源代码复制粘贴到您的网页中,以免它被视为外部脚本。

我更喜欢第一个解决scheme。

onload事件并不总是在IE7 / 8<head> ... </head>

您可以通过在页面的末尾添加一个onload脚本来强制执行它,如下所示。

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

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

 <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> 

这在IE8中解决了我的问题:

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

在本地主机上运行,​​我不得不将https://更改为http://

如果我试图浏览到安全链接,我得到的Internet Explorer无法显示网页友好的警告。

如果出现问题,请始终尝试在浏览器中加载文本脚本!

我也有同样的问题。

我解决了它validationIE8configuration不正确到达SRC URL。

我改变了这一点,它的工作原理。

也许你有inPrivate筛选打开?

我遇到过同样的问题。 解决scheme是在IE中将链接添加到JQuery文件作为受信任的站点。

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

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

由于跨域参考。 尝试在同一个域上托pipejquery.js。

总之,这是因为IE8的parsing引擎。

猜猜为什么微软在使用新的HTML5标签(如“章节”)时也遇到了麻烦? 这是因为MS决定不会像世界其他地方那样使用常规的XMLparsing。 是的,这是对的 – 他们在XML上进行了大量的宣传,但最终他们又回到了一个“愚蠢”的parsing引擎,寻找“已知标签”,并在出现新问题时搞砸了一些东西。

IE8和jQuery的“加载”,“获取”和“后”问题也是如此。 再次,微软决定“走自己的路”与版本8.希望他们解决(四)在IE9中,唯一的当前select是回落在IE7parsing<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

哦,好吧,微软让我们再次在论坛上发布信息,真是一个惊喜。 ;)

在我的情况下,解决scheme是从您尝试访问的URL中取出任何特殊字符。 我有一个代字号(〜)和一个百分比符号,并且$ .get()调用失败了。

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

怪异的部分:这段代码在内容区域工作,但不在横幅中。 即使有一个专门的fixIE.css 。 当我把css内联的时候它就起作用了。 (当然,这会弄乱FireFox。)

我甚至在横幅的文本字段中放置了一个有条件的IE浏览器,没有运气。

我发现没有区别,并在jquery-1.4.2.min.jsjquery-1.2.6.min.js都有相同的错误。 jquery.textshadow.js是从jQuery网站下载,同时试图find解决这个问题。

这不会发布到网站上