click() 未在链接元素上调用

click() not being invoked on link element

本文关键字:元素 调用 链接 click      更新时间:2023-09-26

这是代码:

var link = document.createElement("a");
    link.download = name;
    link.href = uri;
    link.click();

由于某种原因,未在 IE 中调用下载。它适用于Firefox,Chrome和Opera,但不适用于IE。我使用的是最新版本的IE 11。

我尝试在链接上设置一个单击事件处理程序,该处理程序会发出警报,以便我可以查看链接是否被单击,但没有任何反应。

有什么想法吗?

我现在无法测试 IE11,但请尝试:

(function() {
var a = document.createElement('a');
    a.setAttribute("href", uri);
    var dispatch = document.createEvent("HTMLEvents");
    dispatch.initEvent("click", true, true);
    a.dispatchEvent(dispatch);
}());

经过一些研究,link.click() 似乎在 IE 中不起作用,因为 IE 不知道它应该在哪个元素上触发点击事件(即使它直接引用了它)。它适用于其他浏览器,因为它们可以准确地"猜测"在哪里触发它。

我设法通过向 DOM 添加一个链接元素来解决这个问题,然后通过查询选择器引用它,最后在其上调用 click() 方法。