var anchor = angular.element('<a/>');
anchor.attr({
href: 'data:attachment/csv;charset=utf-8,' + encodeURI(response.data),
target: '_blank',
download: 'Rates.csv'
})[0].click();
此锚元素在Firefox和Internet Explorer中不起作用,但在Chrome中有效。是因为我从未将元素添加到DOM中吗?我该如何解决这个问题?
这是从服务器获取费率并显示为要下载的附件。
更新:
var anchor = document.createElement('a');
anchor.href = 'data:attachment/csv;charset=utf-8,' + encodeURI(response.data);
anchor.target = '_blank';
anchor.download = 'Rates.csv';
document.body.appendChild(anchor);
anchor.click();
$timeout(function () {
anchor.remove();
}, 50);
在我的指令中添加了这个,现在工作正常。
答案 0 :(得分:1)
click()
适用于Chrome。对于Firefox,您可以尝试下面的代码
var ev = document.createEvent("MouseEvents");
ev.initMouseEvent("click", true, false, self, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
// Fire event
anchor.dispatchEvent(ev);
答案 1 :(得分:0)
我没有那么多Angular,但如果你传递给attr()方法的下载属性代表HTML5下载属性,那么你的问题是所有浏览器都不完全支持它。