1

我在看最奇怪的事情,需要一些帮助来确定发生了什么。我在 Microsoft SharePoint 服务器上运行了一些 JavaScript,它发出异步图像请求。

当我在 32 位和 64 位 IE9 浏览器中加载页面时,代码按预期运行。当我的同事在他的 32 位和 64 位 IE9 中加载完全相同的页面(从预定义列表中提取)时(注意,所有浏览模式都设置为相同的值),图像请求不会发出。

但是,如果我的同事打开开发工具并再次关闭它们(不使用它或提交任何命令)然后重新加载页面,则请求正确。如果他随后关闭浏览器并重新打开它,它将停止工作,直到重新打开开发工具。

没有 ActiveX、flash 或其他任何东西。它是 100% JavaScript,所以我完全不知道如何解决问题。谁能告诉我发生了什么或指出我正确的方向?

注意事项:

  1. 他的系统确实启用了 JS - 页面上的所有其他 JavaScript 对他来说都运行良好,似乎只是我的 JavaScript 受到了影响。
  2. 我们都测试了 Chrome 和 Firefox,都取得了成功的结果。
  3. 我们都在 IE9、IE8 和 IE7 的不同浏览器模式下进行了测试(通过 IE9 可执行文件)。
  4. 如果重要的话,我们都在 Windows 7 上。
4

1 回答 1

2

我找到了问题的根源,它确实与 console.log() 有关。基本上,我直接从微软那里了解到,window.console 对象在浏览器的开发者工具打开之前是不存在的。在第一次打开之前,没有 window.console,并且引用它会产生代码中断错误。

我发现这是一个特别烦人的错误,因为我习惯于使用控制台跟踪错误......无论如何,MS 说这个问题在 IE10 中得到了解决,但对于我们这些必须支持当前/以前版本的人来说,明智的做法是为这个函数使用一个包装器,在调用它之前测试 window.console 的定义(我实际上有一个用于其他目的的包装器,所以我很容易添加测试条件)。

希望这将帮助其他在追踪 IE 错误时遇到同样困难的人。

于 2012-04-17T22:16:29.533 回答