你好!
我正在尝试接收带有angularjs的文件而不重新加载页面,并且可以动态设置此文件的名称。
为此,我使用以下代码块:
var filename = "my_filename.txt";
var element = angular.element('<a/>');
element.attr({
href: "service/download/",
target: '_blank',
download: filename
});
element[0].click();
此代码适用于 Google Chrome ,但它不适用于 Firefox 和 Internet Explorer 。在IE和FF中,点击按钮后没有任何事情发生。
你能指出我正确的方向吗?如何调查和修复此问题。谢谢!
答案 0 :(得分:5)
试试这种方式
var filename = "my_filename.txt";
var element = angular.element('<a/>');
element.attr({
href: "service/download/",
target: '_blank',
download: filename
});
if (document.createEvent) {
var ev = document.createEvent("MouseEvent");
ev.initMouseEvent(
"click",
true /* bubble */, true /* cancelable */,
window, null,
0, 0, 0, 0, /* coordinates */
false, false, false, false, /* modifier keys */
0 /*left*/, null
);
element[0].dispatchEvent(ev);
}
else {
element[0].fireEvent("onclick");
}