2012-04-11 101 views
0

我可以手動導航到映射的驅動器上有一個.hta文件,雙擊.hta文件並執行正常。但是,我添加了鏈接到共享上的完整路徑(來自IE 8頁面),當我嘗試從鏈接運行時,如下所示:如何製作直接鏈接來執行.hta文件?

問:\ path ... \。hta

然後我得到一個JavaScript錯誤運行腳本時發生錯誤「長度爲空或不是對象」。 JavaScript代碼從名.hta文件本身未來在這條線:

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

我猜測,由於某種原因,「我」是不是當名.hta被流掉的鏈接初始化,而不是手動。

在任何情況下,當我嘗試直接從鏈接轉到文件時,會出現一個對話框詢問我是否要運行,保存或取消.hta文件。當我嘗試運行它時,出現javascript錯誤。

所以我的問題是:

  1. 我怎麼運行在瀏覽器鏈接這名.hta文件?
  2. 爲什麼從鏈接運行時得到javascript錯誤而不是手動運行時?
+0

當您單擊瀏覽器鏈接時,它是要求您運行.hta還是導航到物理路徑你的瀏覽器? – mellamokb 2012-04-11 21:27:37

回答

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。)

+0

是的,我們只在IE中運行,但我不在乎提示。匹配是一個使用str.match和正則表達式的變種。 Q實際上就是.hta所在的映射驅動器。 IE在VDI環境中運行,並直接轉到錨定參考中映射的驅動器。 – 2012-04-12 14:19:51