【问题标题】:Troubleshooting jQuery not loading in IE8解决 jQuery 无法在 IE8 中加载的问题
【发布时间】:2012-11-16 11:32:35
【问题描述】:

我构建了this site,并在我可以从 IE8 及更高版本开始使用的所有浏览器上对其进行了测试。在我的 IE8 版本和我能够测试的任何版本上一切正常。

问题:我的网站在我的客户端版本的 IE8 中无法正常运行。他们报告的错误消息表明 jQuery 没有被加载,这(不足为奇)正在左右破坏脚本。他们向我保证没有防火墙阻止 jquery 从外部站点加载。我还让他们确认在 Internet 选项下启用了 Active Scripting。我对为什么他们的 IE8 不工作而我的工作没有任何想法。

它们在 Windows XP 上。这是我得到的他们的 IE8 的完整版本号:v8.06001.18702c0 128bit

有人知道会发生什么吗?我需要以某种方式尝试追踪那个 EXACT 版本吗?

客户向我展示了此错误消息的屏幕截图。我检查了引用的每一行,一旦在这些脚本中引用了 jQuery,它基本上就会抛出错误。

【问题讨论】:

  • 作为解决此问题的一部分,您是否尝试过从本地域加载脚本?
  • 什么不起作用?我使用的是您提到的完全相同的浏览器,似乎没有任何问题
  • 我正在将他们给我的屏幕截图添加到问题中。

标签: jquery internet-explorer-8 cross-browser


【解决方案1】:

我不完全理解这个解决方案,但是当客户端打开开发人员工具(工具 > 开发人员工具)并从“IE8 兼容性视图模式”切换到 IE8 模式时,问题得到了解决。对我(以及我认识的其他所有人)来说,这已经是默认设置了。客户在一个办公室里工作,他们的所有软件都有很多防火墙和安全设置,所以我认为他们的浏览器是出于某种与安全相关的原因而设置的。

我快速浏览了一下,发现这个关于兼容模式的相当有指导意义的页面: http://blogs.msdn.com/b/askie/archive/2009/03/23/understanding-compatibility-modes-in-internet-explorer-8.aspx

【讨论】:

    【解决方案2】:

    作为一种快速修复,在调用远程脚本时始终使用回退,以防远程服务器不可用:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
    <script>window.jQuery || document.write('<script src="/js/jquery.js" type="text/javascript"><\/script>')</script>
    

    这样,如果找不到远程,则会加载本地版本。不确定这是否会解决您的问题,但值得一试。另外,请确保在调用任何方法之前实际加载了 jQuery:

    jQuery(document).ready(function($)
    {
    ...your script
    }
    

    【讨论】:

    • HTML5Boilerplate 执行此标准。看起来有点矫枉过正,但它可能会解决这个问题。
    • 我已经在 document ready() 函数中加载脚本,但我会尝试您列出的后备并报告。这有点棘手,因为我通过 Wordpress 加载脚本,它处理排队和依赖等。
    • 在你的 main.js 中,第 103 行你有: jQuery(function($)... - 需要在文档就绪方法中。
    • @DeweyOx 谢谢!我会调查的。它使他们的浏览器处于奇怪的模式(请参阅下面的答案),但您的所有建议都很棒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2019-08-31
    相关资源
    最近更新 更多