我们在IE8中的客户应用程序中看到间歇性的JavaScript“拒绝访问”错误。某些用户偶尔会发生此错误,而其他用户从不会发生错误。
我可以通过跳过几个箍来可靠地重现我的浏览器上的错误:
调试到该错误显示它在“Sys.UI.DomEvent”函数中的Microsoft.Ajax.js中抛出,并且向上调用堆栈显示根错误发生在“Sys.UI.DomEvent.addHandler”中当它调用“Sys.UI.DomElement._getWindow(a).event”(a的类型为DispHTMLWindow2)时抛出异常:
name: TypeError
description: “Access is denied.”
message: “Access is denied.”
number: -2147024891
其他用户在不进入网络安全特性的情况下会看到错误。
我对“访问被拒绝”错误所做的所有研究都指出使用来自不同来源的iframe的问题,因此我从相关网页中删除了所有iframe,但我仍然看到错误。
在没有任何iframe的网页中,什么会导致JavaScript“访问被拒绝”错误?
答案 0 :(得分:1)
事实证明,这是因为当用户在广泛使用JavaScript的特定页面上时,某些东西导致Internet安全区偶尔切换。当IE中的页面在加载后更改安全区域时,它无法执行访问页面上控件的父窗口的JavaScript。
仍然不确定是什么导致页面更改安全区域,但这似乎只发生在我们通过IP引用站点时,而不是主机名(始终显示为本地Intranet区域)。