2012-04-11 2 views
0

Ich habe eine HTA-Datei auf einem zugeordneten Laufwerk, zu dem ich manuell navigieren kann, doppelklicken Sie auf die .hta-Datei und es führt gut aus. Allerdings, fügte ich einen Link zu dem vollständigen Pfad auf der Freigabe (von einer IE 8 Seite), und wenn ich versuche, es von der Verbindung zu laufen, wie in:Wie mache ich eine direkte Verbindung, um eine .hta-Datei auszuführen?

. F: \ path ... \ hta

Dann bekomme ich eine Javascript-Fehler ein Fehler bei der Ausführung des Skripts aufgetreten ist "Länge ist Null oder kein Objekt". Der Javascript-Code kommt aus der HTA-Datei selbst auf dieser Linie:

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

Ich vermute, dass aus irgendeinem Grunde „i“ wird nicht initialisiert, wenn der .hta wird die Verbindung ablaufen, anstatt manuell .

Wenn ich versuche, direkt von dem Link zu der Datei zu gehen, erhalte ich in einem Dialog die Frage, ob ich die .hta-Datei ausführen, speichern oder abbrechen möchte. Wenn ich versuche, es auszuführen, bekomme ich den Javascript-Fehler.

Also meine Fragen sind:

  1. Wie führe ich dieses HTA-Datei von einem Browser Link?
  2. Warum bekomme ich den Javascript-Fehler, wenn von einem Link ausgeführt und nicht, wenn es manuell ausgeführt wird?
+0

Wenn Sie auf den Link des Browsers klicken, werden Sie aufgefordert, das .hta auszuführen, oder navigiert es zum physischen Pfad in dein Browser? – mellamokb

Antwort

1

HTA erkennt zugeordnete Laufwerke nicht.

Ich nehme an, Sie haben Ihre Anwendung auf dem Server gespeichert, und dann führen Sie es auf der Arbeitsstation, wo Sie diesen zugeordneten Treiber Q als Verknüpfung zum Server haben.

Der richtige Weg zum Server ist so etwas:

//Your_Server_Name/path_in_server/file.hta 

Eine tatsächliche IP auch anstelle der Your_Server_Name verwendet werden kann.

Um die HTA im Browser (nur IE) ohne Eingabeaufforderungen auszuführen, müssen Sie viele Einstellungen im Sicherheitsbereich der Intranet-Zone und in der Registerkarte Erweitert in einen sehr unsicheren Modus ändern.

über die Fehlermeldung:

Es scheint, dass matches hat keine Eigenschaft length benannt. Wenn matches definiert ist, ist es wahrscheinlich eine Zahl oder ein boolescher Wert oder ein anderer Objekttyp, der nicht die Eigenschaft length hat.

Wenn die Nachricht in etwa so lautet: Can't get the property length: object is null or not defined. Dies bedeutet, dass matches nicht definiert ist.

Beachten Sie, dass HTA ist eine unabhängige Anwendung mit eigenen top.window, und es kann nicht mit dem Browserfenster interagieren. (Es gibt keine Möglichkeit, die opener in HTA zu verweisen, wenn der Opener ein Browserfenster ist.)

+0

Ja, wir laufen nur im IE, aber es ist mir egal, eine Eingabeaufforderung zu erhalten. Übereinstimmungen ist eine Variable, die str.match mit einer Regex verwendet. Q ist eigentlich nur ein zugeordnetes Laufwerk, in dem sich die .hta befindet. Der IE wird in einer VDI-Umgebung ausgeführt und wechselt direkt zum zugeordneten Laufwerk in der Ankerreferenz. –

Verwandte Themen