在链接元素上没有调用click()

时间:2015-01-09 12:35:54

标签: javascript

这是代码:

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

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

我尝试在链接上设置一个单击事件处理程序,它会提醒某些内容,以便我可以看到该链接是否被点击,但什么也没发生。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

(function() {
var a = document.createElement('a');
    a.setAttribute("href", uri);

    var dispatch = document.createEvent("HTMLEvents");
    dispatch.initEvent("click", true, true);
    a.dispatchEvent(dispatch);
}());

答案 1 :(得分:0)

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

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