IE9文档标准和Jquery

3
我有一个奇怪的问题,希望有人能帮助我解决。我有一个运行jQuery的Web应用程序,我正在尝试在IE9中运行它。当我尝试加载第一页时,它显示为损坏的状态,并且我知道document.ready()和window.load()没有触发。当我在IE9中使用开发人员工具并将文档标准更改为IE8或IE7时,一切都可以正常工作,但不适用于文档标准设置为IE9的情况。我的问题是这里发生了什么变化导致我的应用程序出现问题?是否有任何经验可以帮助我解决这个问题?谢谢!

也许提供一些示例代码会非常有帮助。 :) 而且它并不是 document.ready() --- 它是 $(document).ready() - Richard Neil Ilagan
IE9在标准模式下会抛出错误吗? - Šime Vidas
不,完全没有错误,这就是我觉得很奇怪的地方。我已经使用了开发者插件,但没有任何错误或其他问题。我知道我在ready事件中写错了语法,但在应用程序中我已经改正了。谢谢;)。在IE9中,当我切换到IE8标准时,没有任何问题,但在IE9标准下,ready事件根本不会触发。 - ackerchez
2个回答

3

请确保您正在使用最新的jQuery(撰写本文时为1.5.1)。旧版本与IE9存在兼容性问题。


2

实际上,我认为这个问题可能与JQuery无关。我在Mac上的IE9和Firefox上也遇到了完全相同的问题(在开发工具中可以正常工作,但在其他情况下不行)。如果是相同的问题,它与使用console.log()有关。建议的解决方法是将:

console.log(message)

替换为

if (typeof console != "undefined") console.log(message)


控制台对象在IE的任何版本或早期版本(可能是所有版本)的FF中都不存在(但Firebug可以添加它)。尝试引用它会导致有关未定义变量的错误,但这并没有发生,所以它绝对与问题无关。 - El Yobo
doclm提供的解决方案实际上为我们解决了问题。这可能不是导致OP问题的原因,但它绝对是一个有效的建议。 @El Yobo:在IE 9中调用console.log()确实会将输出输出到开发人员工具中的控制台。因此,在打开开发人员工具时,控制台对象存在于IE 9中。 - AVee
这并不是导致OP问题的原因,因为他们报告没有出现任何错误。如前所述,如果没有控制台对象可用,这将导致未定义变量错误,这使问题非常明显。在这种情况下,我投了反对票,因为它与OP的问题明显无关。 - El Yobo

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