如何建立直接链接以执行.hta文件?

时间:2012-04-11 21:25:47

标签: javascript windows browser hta

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

问:\路径... \ HTA

然后我收到一个javascript错误,在运行脚本“length is null or not object”时发生错误。 javascript代码来自此行上的.hta文件:

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

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

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

所以我的问题是:

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

1 个答案:

答案 0 :(得分: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,它无法与浏览器窗口交互。 (如果开启者是浏览器窗口,则无法在HTA中引用opener。)