每当我公司域中具有IE9的计算机导航到网站(从链接)时,我们会在访问以下任何窗口属性时收到“权限拒绝”错误对话框(styleMedia,clientInformation,screen,history,navigator,localStorage,
performance ,sessionStorage).初始页面加载有效,但是当您有到同一页面的链接时,会发生错误.
最初这在加载JQuery库时表现出来. JQuery第一次访问window.navigator.userAgent时会发生权限被拒绝错误.
我们所有的机器都是Windows 7 64位Enterprise SP1.下面的代码可以从IIS运行,也可以直接打开.html文件.
我们无法在公司域之外重现此问题.我们在公司环境中怀疑某些政策,但无法确定导致此问题的政策.
我们可以通过以下方式解决问题:
>切换到IE7或IE8文档模式然后再回到IE9标准文档模式将使浏览器进入从那时起它将起作用的状态.
>刷新页面将修复单个页面加载,但是当单击链接并且通过链接加载另一个页面(可能与您当前所在的页面相同)时,该问题将再次发生.
>从我们域外的计算机导航到该网站.
的test.html
<html>
<head>
<title>Permission Denied</title>
</head>
<body>
<a href="test.html">Click Here</a>
<script type="text/javascript">
alert(window.navigator);
</script>
</body>
</html>
要查看所有无法访问的属性,我们可以打开此html并单击页面上的链接:
testWindow.html
<html>
<head>
<title>Permission Denied</title>
</head>
<body>
<a href="testWindow.html">Click Here</a>
<script type="text/javascript">
var deniedProperties = '';
for (var i in window) {
var obj = window[i];
if (obj == null) continue;
try {
obj._____x = 1; // Attempt to access the object and set a new value on that object.
}
catch (e) {
if (e.number == -2146828218) { // Permission Denied error number.
deniedProperties += i + '\n';
}
}
}
alert('Permission Denied:\n' + deniedProperties);
</script>
</body>
</html>
更新
这是针对IE6问题制定的域策略.我们通过与Microsoft的支持人员合作发现了哪个策略导致了问题,他们记录并分析了我在工作机器上重现问题时如何使用策略.
您可以尝试的另一个想法是在Active Directory中设置一个您具有完全修改权限的组织单位.让它继承公司的所有策略,然后使用二进制消除来阻止策略,直到找到导致问题的策略.
最佳答案 我们遇到了同样的问题,发现在注册表中搜索FEATURE_OBJECT_CACHING并设置iexplore.exe = 1修复了它.
对我们来说,这实际上是在:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet
Explorer\Main\FeatureControl\FEATURE_OBJECT_CACHING