点击“;下载”;使用JQuery的链接没有't下载文件
click on "download" link using JQuery doesn't download file
我有一个href和下载属性的链接:
<a id="lnk" href="data:text/csv;charset=utf-8,1%2C2%2C3" download="my_file.csv">click to download</a>
当我点击它(例如在Chrome中)时,一个csv文件"my_file.csv"会按预期下载。
现在,我希望能够以编程方式执行此操作。所以使用JQuery我正在尝试做:
$('#lnk').click();
或
$('#lnk').trigger("click");
但是该文件没有被下载。
这是代码:http://jsbin.com/yereg/3/edit
我可以从链接中复制链接地址,然后只需使用窗口。打开:
window.open('data:text/csv;charset=utf-8,1%2C2%2C3');
但通过这种方式,我无法设置文件名(链接通过download="my_file.csv"
属性进行设置)。如果有设置文件名的方法,这个解决方案是可以的。
备注:在我的情况下,Chrome和Firefox应该得到支持。我不在乎其他浏览器。
来自jquery文档:
点击事件仅在以下一系列事件之后触发:
当指针位于元素内部时,将按下鼠标按钮。当指针位于元素内部时,将释放鼠标按钮。
您可以通过调用JavaScript本地事件
$('#lnk').get(0).click();
或者更安全:
var lnk = document.getElementById('lnk');
if (lnk) {
lnk.click();
}
编辑:
出于好奇,我查看了jQuery的来源。事实证明,它们阻止了浏览器在链接上的本地点击事件,特别是故意的,请参阅最新jQuery版本(2.1.x)中events.js
的以下摘录,尤其是注释:
click: {
[...]
// For cross-browser consistency, don't fire native .click() on links
_default: function( event ) {
return jQuery.nodeName( event.target, "a" );
}
},
尝试使用$('#lnk')[0].click()
JS:
$('#btn1').on('click', function(){
$('#lnk')[0].click();
});
相关文章:
- 如何在生成下载文件时显示加载动画
- 直接下载文件,而不是从window.open(url)
- Javascript运行php文件,然后下载文件
- 在单击href链接的同时下载文件
- 通过javascript下载文件时设置文件名
- HTML锚标记无法在android平台中下载文件
- 链接/按钮从子文件夹下载文件--浏览器只是浏览
- iPhone强制下载文件
- 正在下载文件,同时加载另一个页面
- 如何在node.js中只下载文件的前10 KB
- 如何使用XMLHttpRequest下载文件
- 使用angular js在前端下载文件
- 使用blob从ajax结果下载文件
- 通过Android Chrome浏览器下载文件
- 使用AJAX下载文件.来自SD卡
- 如何使用phonegap从android中的URL下载文件
- 使用ajax下载文件
- 无法使用Angular JS和spring MVC打开下载文件
- 无法使用API-node.js从Google Drive下载文件
- 点击jQuery按钮下载文件