Kann im Browser eine Download-Aufforderung für erkannte MIME-Typen mit nur JavaScript (Client-seitiger Ansatz) gestartet werden?

8

Ich möchte dem Benutzer erlauben, eine Datei mit einem einzigen Klick direkt herunterzuladen. Es gibt jedoch ein Problem, wenn es um bekannte Meme-Typen wie HTML, Audio, Video usw. geht. Im Idealfall möchte ich eine Download-Aufforderung für Audio / Video-Dateien auslösen. Letztendlich möchte ich es auch für HTML-Dokumente tun. Die Grundidee besteht darin, Benutzern das Herunterladen von Dateien zu erleichtern, ohne dass sie aufgefordert werden, in das Kontextmenü zu wechseln.

Ich denke zum Beispiel an Leute, die sich mit einem Computer und seinen Hauptfunktionen nicht wirklich wohlfühlen. Diese Leute werden sicherlich einen besseren Weg bevorzugen als "sparen als".

Der Grund, warum ich nach einer JavaScript-Lösung suche, ist, dass der PHP-Ansatz nur funktioniert, wenn Sie sich im Kontext einer Website befinden. Wann immer Sie sich in einem Plug-in oder einem Kontext für ein injiziertes Skript befinden (d. H. Ein Plug-in für Firefox, Chrome oder Safari entwickeln), möchten Sie möglicherweise vermeiden, nach einer serverseitigen Antwort zu fragen.

Ich habe versucht, dies mit window.open() und document.execCommand("saveAs",... zu erreichen. Es funktioniert, obwohl es glitchy ist und für große Dateien fehlschlägt.

Dann habe ich Downloadify ausprobiert, was nicht in jeder Situation funktioniert.

Gibt es ein reines JavaScript, keine Ajax-Möglichkeit, eine Download-Aufforderung auszulösen, sodass der Benutzer eine Datei direkt mit einem einfachen Linksklick herunterladen kann?

    
Frederik.L 14.10.2011, 05:38
quelle

3 Antworten

18

In HTML5 gibt es ein neues download -Attribut, mit dem Sie Links mit Links versehen können. Es zeigt dem Browser an, dass die Ressource heruntergeladen werden soll, anstatt zu navigieren. Im Moment funktioniert es nur in Chrome, aber es ist Teil der HTML-Spezifikation und wird hoffentlich bald von einem anderen Browser übernommen werden.

Demo: Ссылка Weitere Informationen: Ссылка

    
ebidel 14.10.2011, 20:47
quelle
0

Sie können <a href="example" download> verwenden. Dies ist HTML5 und es funktioniert mit Chrome, Firefox und Edge (aber nicht mit Internet Explorer, nicht einmal moderne Versionen).

    
Donald Duck 02.11.2016 17:22
quelle
0

Wenn jemand diese Frage jetzt erreicht, ist die beste Lösung

%Vor%

Wenn der Browser das HTML5 Attribut-Download unterstützt, wird der Download der Datei gestartet, andernfalls (im Falle von Internet Explorer und alten Browsern) öffnet der Link ein weiteres Tab-Fenster mit der Datei zum Herunterladen.

    
Roberto Tronci 31.07.2017 10:17
quelle

Tags und Links