Sha*_*aun 21 javascript jquery
是否可以通过JS或Javascript强制下载,即网页不应该在浏览器的新选项卡中打开文件,而是弹出让用户选择"另存为"或打开???
Gok*_*N K 48
随着HTML5的出现,您可以在锚标记中使用新的属性下载.
代码看起来像
<a download="name_of_downloaded_file" href="path/to/the/download/file"> Clicking on this link will force download the file</a>
Run Code Online (Sandbox Code Playgroud)
它适用于firefox和chrome最新版本.我应该提一下我没有在IE中查看它吗?:P
在sstur发表评论后编辑了下载属性
https://caniuse.com/#feat=download
Luk*_*kas 19
动态创建链接,然后单击下载属性以强制下载为文件:
var anchor = document.createElement('a');
anchor.href = this.props.download_url;
anchor.target = '_blank';
anchor.download = this.props.file_name;
anchor.click();
Run Code Online (Sandbox Code Playgroud)
请注意我甚至没有将它添加到DOM,所以它很快.
PS download属性不适用于IE.但它只会在新标签中打开链接.
http://caniuse.com/#feat=download
Sea*_*oyd 14
您无法通过JavaScript强制执行该行为,需要在服务器端设置HTTP标头:
Content-disposition=attachment; filename=some.file.name
Run Code Online (Sandbox Code Playgroud)
解决问题的方法是让您的AJAX方法将用户重定向到PDF的URL:
location.replace('path/to.pdf');
Run Code Online (Sandbox Code Playgroud)
(必须为PDF设置上述HTTP标头)
更新
在这个答案的时候,这是不可能的.现在是,向下滚动以查看另一个答案.