在Internet Explorer 8中的jQuery问题
我想让我的jQueryfunction在IE8上工作。 我正在从Google的服务器加载库( http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js )。
$(function(){})
永远不会被调用。 相反,我得到一个错误Object expected
。 我打开了开发者,并在控制台中运行了typeof $
,而且它的undefined
是undefined
。
我试图去其他网站,我知道使用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.js
和jquery-1.2.6.min.js
都有相同的错误。 jquery.textshadow.js
是从jQuery网站下载,同时试图find解决这个问题。
这不会发布到网站上