我在这里指定了非常相似的要求。
我需要让用户的浏览器在以下情况下手动开始下载 $('a#someID').click();
$('a#someID').click();
但是我无法使用该window.href方法,因为它将当前页面内容替换为您尝试下载的文件。
window.href
相反,我想在新窗口/选项卡中打开下载。这怎么可能?
使用不可见的<iframe>:
<iframe>
<iframe id="my_iframe" style="display:none;"></iframe> <script> function Download(url) { document.getElementById('my_iframe').src = url; }; </script>
要强制浏览器下载本来可以呈现的文件(例如HTML或文本文件),则需要服务器将文件的MIME类型设置为无意义的值,例如application/x-please-download-me或另外application/octet-stream,用于任意二进制数据。
application/x-please-download-me
application/octet-stream
如果只想在新标签页中打开它,则唯一的方法是让用户单击其target属性设置为的链接_blank。
target
_blank
在jQuery中:
$('a#someID').attr({target: '_blank', href : 'http://localhost/directory/file.pdf'});
只要单击该链接,它将在新的选项卡/窗口中下载文件。