元素点击在Firefox和IE中不起作用,但在Chrome中起作用

Element click does not work in Firefox and IE but works in Chrome

本文关键字:不起作用 Chrome 起作用 但在 IE Firefox 元素      更新时间:2023-09-26

我正在尝试接收一个带有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中,点击按钮后没有发生任何事情。

你能告诉我正确的方向吗?如何调查和解决此问题。

  • Chrome版本为35.0.1916.153
  • Firefox版本为30.0
  • Internet Explorer版本为10.0.9206.1899

谢谢!

尝试这种方式

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