跨机器的相同浏览器版本上的JavaScript行为不一致

时间:2012-04-04 14:01:10

标签: javascript sharepoint-2010 internet-explorer-9

我正在寻找最奇怪的事情,需要一些帮助才能找出正在发生的事情。我在Microsoft SharePoint服务器上运行了一些JavaScript,它发出异步图像请求。

当我在32位和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上。

1 个答案:

答案 0 :(得分:2)

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

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

希望这可以帮助那些在追踪IE漏洞时遇到同样困难的人。