一尘不染

使用Javascript / jQuery下载文件

javascript

我在这里指定了非常相似的要求。

我需要让用户的浏览器在以下情况下手动开始下载 $('a#someID').click();

但是我无法使用该window.href方法,因为它将当前页面内容替换为您尝试下载的文件。

相反,我想在新窗口/选项卡中打开下载。这怎么可能?


阅读 2363

收藏
2020-04-23

共1个答案

一尘不染

使用不可见的<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,用于任意二进制数据。

如果只想在新标签页中打开它,则唯一的方法是让用户单击其target属性设置为的链接_blank

在jQuery中:

$('a#someID').attr({target: '_blank', 
                    href  : 'http://localhost/directory/file.pdf'});

只要单击该链接,它将在新的选项卡/窗口中下载文件。

2020-04-23