JQuery Internet Explorer 8问题

我正在尝试让我的 jQuery 函数在 IE8上工作。我正在从谷歌的服务器(http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js)加载库。

$(function(){})从未被调用过。相反,我得到一个错误 Object expected。我打开开发人员并在控制台中运行 typeof $,它显示为 undefined

我已经尝试去其他我知道使用 jQuery (jQuery.com)的网站,这些都是有效的,有没有什么我可能错过的地方?

269712 次浏览

没有加载 jQuery,这不太可能是 IE8特有的。检查 jQuery include 上的路径。声明。或者更好的做法是,对 CDN 使用以下内容:

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

也许你打开了 内部过滤

我也有同样的问题。

我解决了验证 IE8没有正确配置到 SRC URL 的问题。

我改变了这个,它工作正常。

我也遇到过类似的问题。IE6、 Firefox 和 IE8在 IE7兼容模式下运行,但在“正常”的 IE8下不能正常工作。我的解决方案是把这段代码放在页眉中

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

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

当你定义变量的时候,在变量前面写上“ var”。当没有“ var”的时候 IE8就死了。

好的!我知道 jQuery 正在加载。我知道 jQuery.textshadow.js正在加载。我可以在开发人员工具中找到这两个脚本。

奇怪的是: 这段代码在内容区域工作,但在横幅区域不工作。即使有专用的 fixIE.css。当我把 css 放入内联时,它就工作了。(当然,这会把火狐搞得一团糟。)

我甚至把一个有条件的 IE 跨度周围的文本字段在横幅没有运气。

我没有发现任何差异,在 jquery-1.4.2.min.jsjquery-1.2.6.min.js都有相同的错误。jquery.textshadow.js是在试图找到解决这个问题的方案时从 jQuery 站点下载的。

这不是张贴到网站

解决方案是升级到最新版本的 jQuery。我遇到了同样的问题,升级到了1.4.2,在 IE8中一切正常。

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

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

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

我也有同样的问题。解决方案是在 IE 中以可信站点的形式添加到 JQuery 文件的链接。

Onload 事件并不总是在 <head> ... </head>中的 IE7/8上工作

您可以通过在页面末尾的标记之前添加 onload 脚本来强制它,如下所示。

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

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

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

这导致 IE不加载 jquery (它提示用户是否只加载安全内容)。更改 GoogleCDNURL 以使用 https 方案为我解决了这个问题。

我正在修复一个由 某人创建的模板,它忘记了包含 doctype。

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

如果你没有声明 doctype IE8在怪异模式下做奇怪的事情。

更正:

检查您的脚本 include 标记,它是否使用

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

变成

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

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

猜猜为什么微软在使用新的 HTML5标签(比如“ section”)时也遇到了麻烦?这是因为 MS 决定不像世界其他地方那样使用常规的 XML 解析。是的,没错——他们对 XML 做了大量宣传,但最终,他们还是回到了“愚蠢的”解析引擎上,寻找“已知的标记”,当新的东西出现时,他们就把事情搞砸了。

对于 IE8和“ load”、“ get”和“ post”的 jquery 问题也是如此。同样,微软决定“走自己的路”与版本8。希望他们能在 IE9中解决(d)这个问题,当前唯一的选择是回到使用 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />的 IE7解析。

哦,好吧... ... 微软让我们再次在论坛上发帖真是太令人惊讶了。 ;)

我觉得你和我有同样的问题:

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

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

如果您在站点上使用 HTTPS,则需要从 Googlehttps 服务器加载 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)

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

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

在本地主机上运行时,我必须将 Https://更改为 网址: http://

如果我尝试浏览到安全链接,我会得到 < strong > Internet Explorer 无法显示网页 友情提示。

如果有问题,总是尝试首先在浏览器中加载您的文本脚本!

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

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

或者

  • 2: 将 jquery 源代码复制粘贴到你的网页中,这样它就不会被看作是一个外部脚本。

我更喜欢第一种方案。

在我的例子中,解决方案是从您试图访问的 URL 中删除任何特殊字符。我有一个波浪(~)和一个百分比符号,还有 $。调用无声失败。

一些偶然发现这篇文章的人可能会在使用 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]-->