读取 HTML 应用程序位置对象的属性时出现权限被拒绝错误
警告
已停用、不受支持的 Internet Explorer 11 桌面应用程序在某些版本的 Windows 10 上已通过 Microsoft Edge 更新永久禁用。 有关详细信息,请参阅 Internet Explorer 11 桌面应用停用常见问题解答。
本文提供了许多方法,用于解决在读取 HTML 应用程序 (HTA) 内 Location 对象的属性时出现的 “权限被拒绝 ”错误消息。
原始版本: Ie
原始 KB 编号: 816885
症状
读取 HTML 应用程序 (HTA) 内 Location 对象的某些属性时,可能会收到 “权限被拒绝” 错误消息。 Location 对象的相关属性包括:
- Location.href
- Location.hostname
- Location.reload
注意
只有在使用本地局域网 (LAN) Microsoft Internet Explorer 设置中的自动配置脚本时,才会注意到此错误。
如果计算机上安装了调试工具,则可能会收到以下错误消息:
发生运行时错误。 是否要调试? 第 12 行错误:权限被拒绝
如果计算机上未安装调试工具,可能会收到以下错误消息:
此页上的脚本中发生错误。 行: 13 字符: 2 错误: 权限被拒绝 代码: 0 URL:
http://WebServer/FileName.hta
是否继续在此页上运行脚本?
注意
仅当自动配置脚本具有 DIRECT 值时,才会注意到此问题。
解决方案
若要解决此问题,请使用以下任一方法:
注意
以下方法基于本文重现行为的步骤部分中提到的示例。 因此,这些方法中的代码和文件名可能与代码和文件名不同。
- 在 Internet Explorer 的代理服务器设置中对代理服务器进行硬编码,而不是使用自动配置脚本,然后按 F5 在浏览器中刷新 HTA。
- 使用主机名而不是完全限定的域名 (FQDN) 来访问 HTA 的路径。
- 使用 IP 地址访问 HTA。
- 将要访问的网站添加到“受信任”区域或“受限”区域。
- 请勿在代码中使用 Location 对象。
- 单击以清除 Internet Explorer 的安全设置中的“包括绕过代理服务器的所有站点检查”框。
重现行为的步骤
启动 Internet Explorer。
在“工具”菜单上,单击“Internet 选项”。
在“Connections”选项卡上,单击“LAN 设置”。
在“局域网 (LAN) 设置”对话框中,单击以选中“检查使用自动配置脚本”框。 确保未选择其他检查框。
在“ 地址 ”框中,键入自动配置脚本的路径。
使用记事本创建名为 Default.hta 的文本文件。
将以下 HTML 代码添加到 Default.hta 文件:
<html> <head> <title>HTA Location.href bug reproduction</title> <HTA:APPLICATION ID="oBugRepro" APPLICATIONNAME="BugRepro"> <SCRIPT LANGUAGE="JavaScript"> function ShowFrame() { var strLocation; strLocation = top.fraTabs.location.href; } </SCRIPT> </head> <frameset id="fstWorkAreaMain" name="fstWorkAreaMain" rows="40%,60%"> <frame src="about:blank" id="fraTabs" name="fraTabs" APPLICATION="yes"> <frame src="Main.htm" id="fraMain" NAME="fraMain" APPLICATION="yes"> </frameset> </html>
使用记事本创建名为 Main.htm 的文本文件。
将以下 HTML 代码添加到 Main.htm 文件:
<HTML> <BODY style="background-color:gainsboro"> <P>Main frame</P> <input id="cmdButton" type="button" onclick="top.ShowFrame()" value="Click me to reproduce the behavior"></input> </BODY> </HTML>
将两个文件 Default.hta 和 Main.htm 放在 Web 服务器上名为 HTARepro 的虚拟目录中。
确保已启用对 HTARepro 虚拟目录内容的匿名访问。
在命令提示符下键入以下命令:
mshta.exe http://WebServer/HTARepro/Default.hta
注意
将 替换为
WebServer
正在使用的 Web 服务器的 FQDN。在 HTA 应用程序中,单击“ 单击我”以重现该行为。 你会收到本文症状部分中提到的错误消息之一。
References
有关详细信息,请参阅 HTML 应用程序简介 (HTA) 。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈