我正在使用jQuery / Javascript创建一个锚元素。我正在使用这种方法:
var a = document.createElement('a');
a.href = '/files/target.pdf';
a.download = true;
但是如何在上执行点击事件而不将其添加/添加到DOM ?我的意图非常简单。我想让用户下载一个文件而不是在浏览器中打开它,这就是为什么我要避免使用window.location = '/files/target.pdf';
函数。
请帮帮我。
感谢。
答案 0 :(得分:7)
好吧,你可以像这样触发“点击”:
var anchor = document.createElement('a');
anchor.href = 'http://gutfullofbeer.net/mozilla.pdf';
anchor.download = true;
var evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
anchor.dispatchEvent(evt);
但是,当我在Firefox中执行此操作时,我会获得一个PDF文件,该文件显示在Firefox的内置PDF查看器中。 (Chrome似乎做了“正确”的事情,即显示“保存...”对话框。)