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

Javascript 如何建立直接链接以执行.hta文件?,javascript,windows,browser,hta,Javascript,Windows,Browser,Hta,我在映射驱动器上有一个.hta文件,我可以手动导航到该文件,双击该.hta文件,它就会正常执行。但是,我在共享上添加了一个指向完整路径的链接(来自IE 8页面),当我尝试从该链接运行它时,如: Q:\path…\.hta 然后我得到一个javascript错误,运行脚本“length为null或不是对象”时出错。javascript代码来自此行中的.hta文件本身: ... for (var i = 0; i < matches.length; i++) { ... 。。。 对于(va

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

Q:\path…\.hta

然后我得到一个javascript错误,运行脚本“length为null或不是对象”时出错。javascript代码来自此行中的.hta文件本身:

...
for (var i = 0; i < matches.length; i++) { 
...
。。。
对于(var i=0;i
我猜由于某种原因,.hta在链接之外运行时,而不是手动运行时,“I”没有初始化

在任何情况下,当我尝试从链接直接转到该文件时,我确实会收到一个对话框,询问我是否要运行、保存或取消.hta文件。当我尝试运行它时,我会收到javascript错误

因此,我的问题是:

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

  • HTA无法识别映射的驱动器

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

    服务器的正确路径如下所示:

    //Your_Server_Name/path_in_server/file.hta
    
    也可以使用实际IP来代替
    您的\u服务器\u名称

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

    关于错误消息:

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

    如果消息如下:
    无法获取属性长度:对象为null或未定义
    。这意味着,
    匹配
    未定义


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

    当您单击浏览器链接时,它是要求您运行.hta,还是导航到浏览器中的物理路径?是的,我们仅在IE中运行,但我不关心是否得到提示。matches是一个使用str.match和regex的变量。Q实际上只是.hta所在的映射驱动器。IE在VDI环境中运行,只是直接转到锚引用中的映射驱动器。