0

マップされたドライブに.htaファイルがあり、手動で移動して.htaファイルをダブルクリックすると、正常に実行されます。ただし、(IE 8ページから)共有のフルパスへのリンクを追加し、リンクから実行しようとすると、次のようになります。

Q:\ path...\。hta

次に、「長さがnullであるか、オブジェクトではありません」というスクリプトの実行中にエラーが発生した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 を実行するには、イントラネット ゾーンのセキュリティと [詳細設定] タブの多くの設定を非常に安全でないモードに変更する必要があります。

エラー メッセージについて:

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 に答える