Javascript IE9 jQuery加载顺序问题

Javascript IE9 jQuery加载顺序问题,javascript,jquery,internet-explorer-9,Javascript,Jquery,Internet Explorer 9,我有一个非常依赖jQuery的页面。 页面上的功能在除IE9之外的所有浏览器中都可以正常工作。 我理解这是IE9的问题,在IE9中Javascript的加载速度非常慢 我面临的问题是,页面一旦加载就认为Javascript不可用 我在控制台中看到的错误是: SCRIPT5007: Unable to get property 'length' of undefined or null reference File: jquery-1.8.3.min.js, Line: 2, Column: 14

我有一个非常依赖jQuery的页面。 页面上的功能在除IE9之外的所有浏览器中都可以正常工作。 我理解这是IE9的问题,在IE9中Javascript的加载速度非常慢

我面临的问题是,页面一旦加载就认为Javascript不可用

我在控制台中看到的错误是:

SCRIPT5007: Unable to get property 'length' of undefined or null reference
File: jquery-1.8.3.min.js, Line: 2, Column: 14331
对于该记录,jQuery库在加载任何其他js文件之前加载

我试图通过在头部添加以下代码来绕过这个问题,尝试将IE9强制进入IE8模式。注:默认情况下,IE强制使用“边缘”模式

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!--[if IE 9]>
        <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
    <![endif]-->

然而,这没有什么区别

在有人问我们为什么要依赖IE9之前,这是一项业务需求

如果访问页面的bowser是IE9,有人知道如何让页面以IE8模式呈现吗

非常感谢

我应该补充一点,有问题的页面上有一个“noscript”检查,因此如果JS不可用,将不会呈现。只有在IE9中才是这样。对于所有其他浏览器,页面将呈现良好。 我想知道上面的错误是不是其他原因


为了记录在案,我一直在研究这个线程。

据我所知,这是IE9下的jQuery的一个问题,在jQuery 1.8.3之后的某个时候修复了这个问题

因此,这个问题很可能可以通过使用jQuery的更高版本来解决

此时,我会选择jQuery1.11.0。不要被2.x系列所诱惑,它故意省略了很多向后兼容性的东西


不幸的是,这将意味着重新鉴定使用jQuery的所有内容,这是一件痛苦的事情

我们的问题在于IE无法识别“控制台”命令。 当我们运行许多console.log命令时,当IE9中到达这部分代码时,它停止,并阻止加载任何其他JS

所以我们实现的修复是:如果控制台未定义(IE9),则定义一个空的对象文本

 if(!(window.console && console.log)) {
    console = {
        log: function(){},
        debug: function(){},
        info: function(){},
        warn: function(){},
        error: function(){}
    };
}    

这似乎正在为我们工作。:)

遗憾的是,迁移到1.11并没有起到任何作用。你能验证我上面用来设置IE8兼容性的代码是合法的吗?(我不是js编码员——Java是我的领域。):)恐怕我对IE8 compat的黑客行为所知不多,正如你在问题中提供的链接中所说的那样。当您尝试jQuery 1.11.0时,黑客行为被抑制了-是吗?老实说,我完全删除了黑客行为,更担心新的jQuery库会导致其他问题。我需要确保基本功能保持完整,遗憾的是它没有。嗯,这真是一个两难的选择。很抱歉,我没有主意了。有人报告了相同的问题,并跟踪到jQuery的早期版本,覆盖了他认为已加载的版本。