有关IE8上的Javascript的问题

时间:2012-03-23 09:53:33

标签: javascript jquery internet-explorer-8

我的(Drupal)项目(购物车)适用于所有现代浏览器。 IE8(和IE7)是一个例外。加载了jquery.js和所有js文件,我可以在View Source模式下看到它们,但是运行卡在里面:jquery.js。

新编辑:我的doctype确实相对较新,但我在同一平台(Drupal)上有其他项目,在IE8上运行时没有错误,具有相同的doctype

以下是我在 IE9中的开发人员工具中从控制台模式打印的内容:

浏览器模式:IE8文档模式:IE8标准

   SCRIPT5022: Exception thrown and not caught 

    jquery.js?v=1.4.4, line 85 character 139
    >> typeof jQuery 
    "function" 
    >> typeof $ 
    "undefined" 

如上所示,当我输入iE8中的JS控制台时:typeof $对象未定义,而在其他浏览器中则是函数。

似乎有效的一种解决方案是将文档模式设置为IE9: 这有效:

浏览器模式:IE8文档模式:IE9标准但这对我来说没有逻辑。

我失败的其他解决方案:

  1. 不同的jquery.js版本:1.4.4,1.5.2,1.6,1.7.1,带或 没有CDN,有或没有https://
  2. 不同的doctypes。
  3. 这是[http://stackoverflow.com/questions/879137/problem-with-jquery-in-internet-explorer-8][4]

    的补充

2 个答案:

答案 0 :(得分:0)

可能的解释:

$功能在Chrome和Firefox的控制台中定义,但它是控制台的“内部”功能。 IE8调试工具没有定义这样的东西。

即使在没有jQuery的空标签上,$也在Firebug和WebInspector控制台中定义。

此外,您的jQuery以noConflict模式运行,该模式可清除全局$引用。

答案 1 :(得分:0)

这可能超过一个研究,但我认为IE跳进Qurik模式,因为doc类型指定不正确?

如果这没有用,你可以尝试:

if(typeof whatever != 'undefined') { ... }