Jquery在IE9 RC中无法工作

8
我刚刚升级到IE9 RC(我必须补充的是,这不是微软的一个很糟糕的尝试,到目前为止,他们仍然有时间搞砸它!请不要在下面评论你认为它有多么美妙/糟糕,我不想引发浏览器战争!)以测试网站。

现在我知道它只是一个发布候选版,还在开发中,但由于某种原因,我的网站上的所有jQuery都没有被正确呈现(我所说的不是正确渲染,而是完全不起作用)。

唯一的解决方法是使用IE9浏览器模式和IE8标准。使用IE9浏览器模式和IE9标准会使jQuery停止工作。

我知道我可能得等到他们升级IE或jQuery API,但有人知道为什么或可能有解决方法吗?

谢谢大家!

更新

好的,那么各位可以回到jQuery V1.4,或者使用此jQuery v1.5的发布候选版-http://code.jquery.com/jquery-1.5.1rc1.js


1
我可以建议您使用开发人员扩展并通过打开JavaScript调试来查看引起问题的原因吗?您可以通过按F12,选择“脚本”选项卡并按下“启用调试”按钮来完成。 - Igor Zinov'yev
也许是这个bug吗? - lonesomeday
@Igor Zinov'yev - 在这个点上中断 - srcElements = elem.getElementsByTagName("*"); 只是注意我正在使用jQuery v1.5。谢谢 - Ryano
我猜@Ryano在谈论像FancyBox这样的特定内容? - 这在IE9中根本不起作用... - Barrie Reader
@lonesomeday - 就是那个! - Ryano
5个回答

4
首先,检查你的$(document).ready()中是否有代码错误。如果一切看起来都没问题,请重新加载页面并按F12键,点击脚本选项卡,然后点击开始调试,它将重新加载页面并将在JavaScript中断点处停止。
jQuery在IE9 RC中可以正常工作,我自己也用它进行测试。
但是,如果你在$(document).ready()的顶部附近执行了IE不支持的操作,可能会阻止页面的其余部分加载。
如果这是由于console.log引起的,有一个好方法可以防止IE停止console.log
if(console == undefined){ console = {log:function(){}}; }

谢谢 - 很好的答案 - 我有一个针对Chrome的console.log()调用,在IE9下会出问题,但在IE调试器下却可以正常工作。 - Thomas Bratt
如果您想要一个更加常规的“解决方法”,可以这样开始:if (!console) - Unihedron
@Unihedron,唯一的问题是你必须在每个console.log之前放置它。我的方法是,你可以把它放在JS文件的顶部,然后就可以正常使用console.log了。 - Barkermn01
好的,你可以正常使用它,只是它不会做任何事情。我更多的意思是你的调用可以正常存在,而不需要在每个调用之前加上一个 if 语句。 - Barkermn01

3

为什么这个没有被标记为答案,却被标记了答案? - Barkermn01
1
曾经......jQuery 1.5的一些功能在IE9上无法正常工作......但现在,多亏了1.5.1版本,这些问题已经不存在了。 - Barrie Reader

2

我在以前的工作中使用IE9,在jquery方面运行良好。几天前,我还参加了jquery开发者会议,其中提到只有少数测试用例失败。你可能遇到了其他问题,比如安全设置等。


当您设置IE8标准时,它可以工作,但是IE9标准会破坏jQuery。我办公室里的其他人在IE9上也遇到了同样的问题。 - Ryano
嗯,我们也用它进行测试,但从未遇到过任何问题。如果出现了这样的故障,查询团队会知道的。是奇怪的环境问题吗? - JohnP
可能是因为您正在使用jQuery v1.5之前的版本,1.4似乎可以正常工作!无论如何,感谢您的帮助! - Ryano

2

jQuery 1.5在IE9上有些问题。我回退到最新的1.4版本,现在工作正常。


0
为了使用getElementsById标签,您需要使用Release Candidate,因为它已经修复了这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接