javascript - Eröffnung versteckten iframe für die Datei download-Dokument bereit
Ich versuche mit diesem trick zum öffnen einer Datei download-dialog auf Dokument bereit. Den gleichen trick gearbeitet hat, ein anderes mal für mich, aber die Zeit der iframe Hinzugefügt wurde, nachdem ein ajax-call. Dies ist das snippet:
<script type="text/javascript">
$(document).ready(function() {
var url='/my_file_url/';
var _iframe_dl = $('<iframe />')
.attr('src', url)
.hide()
.appendTo('body');
});
</script>
Während das iframe wird korrekt gedruckt in den html-code, es muss nicht das erwartete Verhalten: keine download-Datei-popup erscheint nach dem laden der Seite. Jede Hilfe, warum?
sind Sie sicher, dass Ihre syntax korrekt ist ?
es gibt keine Schließung });
Sind die richtigen Header für die Datei-url? (wenn Sie öffnen Sie es mit Ihrem browser, haben Sie die download-popup?
Sie sind nicht schließen Sie Ihre
Funktioniert, wenn Sie in der Nähe Ihrer Funktion und Aufruf mit
es gibt keine Schließung });
Sind die richtigen Header für die Datei-url? (wenn Sie öffnen Sie es mit Ihrem browser, haben Sie die download-popup?
Sie sind nicht schließen Sie Ihre
$(document).ready(function(){
Funktioniert, wenn Sie in der Nähe Ihrer Funktion und Aufruf mit
});
jsfiddle.net/aMcNVInformationsquelleAutor Luke | 2013-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es funktioniert, vorausgesetzt, dass der MIME ist ein Typ, starten Sie einen download, zum Beispiel application/octet-stream. Sie können ein Problem Auftritt, wo der browser das rendering und nicht mit einem download durch einen eingebauten pdf-reader.
Eine Alternative Lösung, wenn der client auf einen modernen browser, ist die Verwendung eines
<a>
mit href und download festgelegt, simuliert dann einen Klick auf es.Dass die Geige nicht von jquery Hinzugefügt, noch schließt es die JavaScript zur richtigen Zeit (siehe Einstellungen auf der linken Seite). Weiter, das Problem scheint zu kommen aus der
.pdf
Datei extModernest Browser (z.B. Chrome) tun können
a.click()
an Stelle desev
Zeug.wurde in Spezifikation da 2003 oder früher, es ist nichts moderne über Sie; der Zeitpunkt der Versendung einer Veranstaltung, die in diesem code wird die Simulation einer Maus-klicken Sie so nah wie möglich, als ob es wirklich passiert ist.
@Paul S: Wo habe ich das gesagt, dass
element.click
wurde in die Skillung erst seit kurzem? Sie konnte nurelement.click
auf eineelement
ist in derDOM
. Ihr Beispiel nichta
imDOM
, so benötigen Sie einen modernen browser wie Chrome zu tunelement.click
drauf, weil die letzten 10 Jahre, es würde nicht so funktionieren.InformationsquelleAutor Paul S.