繁体   English   中英

Internet Explorer 8中的jQuery问题

[英]jQuery issue in Internet Explorer 8

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

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

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

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

更正:

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

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

改成

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

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

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

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

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

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

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

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

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

有些人在这篇文章上磕磕绊绊可能会在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]-->

如果您在站点上使用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

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

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

我被固定由其他谁忘了,包括文档类型创建的模板。

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

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

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

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

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

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

要么

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

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

我遇到了同样的问题。

我解决了它验证IE8没有正确配置到达SRC URL。

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

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

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

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

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

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

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

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

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

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

也许你已经开启了私人过滤

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

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

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

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

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

这不会发布到网站上

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM