0

我在映射驱动器上有一个 .hta 文件,我可以手动导航到该文件,双击 .hta 文件即可正常执行。但是,我添加了一个指向共享上完整路径的链接(来自 IE 8 页面),当我尝试从该链接运行它时,如下所示:

问:\路径...\.hta

然后我收到一个javascript错误,运行脚本“长度为空或不是对象”时发生错误。javascript 代码来自此行的 .hta 文件本身:

...
for (var i = 0; i < matches.length; i++) { 
...

我猜测由于某种原因,当 .hta 脱离链接而不是手动运行时,“i”没有被初始化。

无论如何,当我尝试从链接直接转到文件时,我会收到一个对话框,询问我是否要运行、保存或取消 .hta 文件。当我尝试运行它时,我得到了 javascript 错误。

所以我的问题是:

  1. 如何从浏览器链接运行此 .hta 文件?
  2. 为什么从链接运行而不是手动运行时会出现 javascript 错误?
4

1 回答 1

1

HTA 无法识别映射驱动器。

我假设您将应用程序保存在服务器上,然后在工作站上运行它,您将这个映射的驱动程序Q作为服务器的快捷方式。

服务器的正确路径是这样的:

//Your_Server_Name/path_in_server/file.hta

也可以使用实际 IP 代替Your_Server_Name.

要在没有提示的情况下在浏览器(仅限 IE)中运行 HTA,您需要将 Intranet 区域安全和高级选项卡中的许多设置更改为非常不安全的模式。

关于错误信息:

似乎,它matches没有一个名为length. 如果matches定义了,它可能是一个数字或一个布尔值,或者一些其他类型的没有该length属性的对象。

如果消息是这样的:Can't get the property length: object is null or not defined. 这意味着,那matches是未定义的。

注意,HTA 是一个拥有自己的独立应用程序,top.window它不能与浏览器窗口交互。opener(如果打开器是浏览器窗口,则无法在 HTA 中引用。)

于 2012-04-12T11:56:24.787 回答