javascript - anchor 击下载在 Firefox 中不起作用

标签 javascript angularjs

var anchor = angular.element('<a/>');
anchor.attr({
    href: 'data:attachment/csv;charset=utf-8,' + encodeURI(response.data),
    target: '_blank',
    download: 'Rates.csv'
})[0].click();

此 anchor 元素不适用于 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);

将此添加到我的指令中,现在工作正常。

最佳答案

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);

关于javascript - anchor 击下载在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469943/

相关文章:

javascript - angularjs bootstrap ng-repeat 在选项卡内不起作用

javascript - 向隐藏输入标记添加值并提交到表单

javascript - 如何在自定义 jQuery 函数中制作数组数据?

javascript - 将 json 对象从 Android/iOS native 传递到 javascript

javascript - 顶线填充 Nvd3 图表

angularjs - Jasmine 测试 : How to mock a method inside a controller in AngularJS

javascript - 在 AngularJS Controller 或 View 中执行逻辑运算哪个更好?

javascript - jQuery UI Slider - 发布时从 'slide' 事件返回的值不同于 'change' 值

javascript - 使用 Javascript 从日历中选择多个日期

javascript - 如何在 Kendo UI 工具栏中动态添加按钮?