Erzwinge den Download der URL 'data: text / plain'

8

Ich habe mich gefragt, ob es möglich ist, einen Browser (zumindest Chrome) zu zwingen, eine data:text/plain URL herunterzuladen.

Chrome lädt binäre URLs (z. B. data:application/zip;base64,... ) herunter, lädt jedoch keine Dateien herunter, die im Browser angezeigt werden können (z. B. Textdateien).

Was ich bisher schon ohne Glück versucht habe ist:

%Vor%

Aber es scheint, als könnte ich keine Header wie diese hinzufügen.

Gibt es eine Möglichkeit, Chrome dazu zu bringen, eine data:text/plain,... URL herunterzuladen?

    
pimvdb 24.06.2011, 13:31
quelle

4 Antworten

12

Ab sofort ist es möglich, <a download> in Chrome zu verwenden. Mit dispatchEvent können Sie beliebige Zeichenfolgen als Datei (auch mit einem benutzerdefinierten Dateinamen) herunterladen, wann immer Sie möchten. Hier ist eine Dienstprogrammfunktion, um es zu benutzen:

%Vor%

Verwendung:

%Vor%

Es verwendet jQuery und das webkit Präfix, aber beide können vermieden werden.

    
pimvdb 27.07.2012, 10:36
quelle
6
%Vor%

Es verwendet das HTML5-Attribut download="filename.ext" . (Kein JS benötigt:)

Mehr über: Ссылка

Die Browser-Unterstützung kann unter Ссылка

überprüft werden

(Im Moment 2013, keine IE- und Safari-Unterstützung)

Ich denke, Sie können einen Fallback für nicht unterstützende Browser machen: Verwenden Sie JS, um den Wert von href="..." in die URL Ihres Server-Skripts zu ändern (wodurch der Dateiinhalt mit dem entsprechenden HTTP-Header Content-disposition: attachment;filename=filename.txt zurückgegeben wird) / p>     

Iv Ov 29.11.2013 09:25
quelle
1

Ich habe die Daten an einen Server gesendet, der sie mit folgendem HTTP-Header zurücksendet:

%Vor%

Ich mag das nicht, aber es funktioniert ziemlich gut.

    
pimvdb 25.06.2011 14:01
quelle
0

Das funktioniert wie die Hölle ...

%Vor%     
Michal Havelec 21.02.2017 13:53
quelle