2016-07-29 7 views
0

Ich habe einige Javascript-Code, der REST-Aufrufe an den Server und ruft Objekte ab. Diese Objekte haben eine Eigenschaft namens "Pfad", die sich auf HTML-Dateien im lokalen Dateisystem bezieht. Also habe ich einen ancore Tag wie dieseWie formatiert Zeichenfolgen, die Dateipfade auf dem lokalen System darstellen

<a href="' + result.path +'" class="test">view</a> 

, die zur Laufzeit etwas ersetzt werden wie

<a href="C:\Users\Tim\Downloads\0000048.html" class="test">view</a> 

gehen wir auf einem Windows-System sind und der Wert des Pfades C: \ Benutzer \ Merylin \ Downloads \ 0000048.html.

Wenn ich auf den Link klicke, navigiert er zu C: \ Benutzer \ Merylin \ Downloads \ 0000048.html, aber ich bekomme eine Fehlerantwort vom Browser, dass die Adresse nicht identifiziert werden konnte. Aber wenn ich die Seite neu lade zeigt es gut, aber ich stelle fest, dass die Adresse in Datei geändert wurde: /// C: \ Users \ Merylin \ Downloads \ 0000048.html, Beachten Sie die zusätzliche Datei: ///. Ich möchte nicht, dass Benutzer die Seite neu laden müssen, bevor sie angezeigt wird. Ich möchte nur wissen, ob es einige JavaScript-Funktionen gibt, die ich verwenden kann, um den Pfad zu formatieren, damit der Browser es akzeptieren kann. Hinweis: Ich habe keine Kontrolle darüber, wie dieser Pfad erstellt wird. Ich habe ihn nur mit REST gelesen und er kann entweder von Windows oder von Linux kommen.

+1

Der von Ihrem REST-Aufruf zurückgegebene Pfad muss der Serverpfad sein. Ich weiß nicht, was Ihr Szenario ist, aber wie kann der Server den lokalen Pfad des Clientcomputers zurückgeben? – atul

+0

Ich denke, das Problem mit dem Browser. Welcher Browser erhalten Sie Fehler. Ich denke, es wird perfekt in Chrom funktionieren –

+0

@Yuva Sie hatten Recht. Es ist ein Browserproblem. Es funktioniert gut in Chrom – ivange94

Antwort

0

Sie können "file: ///" vor dem Dateipfad anhängen. Benutzer kann die Seite mit einem einzigen Klick erhalten.

Ich hoffe, dies wird Ihnen hilfreich sein.

+0

Ich denke, das wird nur unter Windows funktionieren – ivange94

0

Wie Yuva sagt, müssen Sie zur Angabe des lokalen Pfades "file: ///" dem Dateipfad voranstellen.

Aber es funktioniert immer noch nicht für Sie, da die meisten Browser aus Sicherheitsgründen keine Verknüpfung mit lokalen Ressourcen zulassen.

Das ist der Fehler, den Sie auf den ersten Blick sehen.

Wenn Sie die Seite neu laden, funktioniert es, weil die URL, die es bereits in der Adressleiste platziert hat, "neu lädt" ist genauso wie manuell den Pfad schreiben und "Enter" drücken. Aktion, die immer bewusst durchgeführt werden sollte und daher die meisten Browser (die das lokale Dateisystem-Erkunden unterstützen) nicht blockieren.

Zusammengefasst, wenn Sie gezwungen sind, lokale Dateien zu verknüpfen, werden Sie gezwungen, dieses manuelle Neuladen zu tun oder höchstens einige Browser-Plugins wie Locallink for Firefox zu verwenden, um sie direkt zu öffnen (aber zumindest locallink , erfordert die Verwendung der Kontextmenüoption, die bereits dafür sorgt, dass Sie es nicht versehentlich tun. Ich weiß nicht, ob es andere Plugins gibt, die nicht funktionieren.

Aber, wenn es eine Chance gibt, dass diese Dateien vom Server verfügbar waren, ist eine viel bessere Lösung aus Ihrer Anwendung zu bedienen. Zum Beispiel mit statischem Router über einen Pfad, der die Dateien enthält, wenn sich Ihre Serverimplementierung auf Knoten + Express befindet.

Verwandte Themen