我在映射的驱动器上有一个.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错误。
所以我的问题是:
答案 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
。)