如何以编程方式单击IE中的链接?

时间:2016-04-15 15:42:02

标签: javascript asp.net internet-explorer

我遇到了具有此功能的IE特有问题:

function downloadFileFromUserControl(filename) {
    var name = filename.split("/");
    var fName = name[name.length - 1];
    console.log("IE speaking, I'm just going to take a little nap during this request");
    var link = document.createElement('a');
    link.download = fName;
    link.href = filename;
    link.click();
    console.log("Oh, I'm late to the party?? Back to sleep I guess");
}

在Chrome中,此功能完美运行,我使用此功能从超链接下载PDF文件。没有错误,它只会发布到控制台。

IE需要一些额外的代码来完成这项工作吗?感谢

2 个答案:

答案 0 :(得分:0)

创建元素后,使用element.appendChild()element.insertBefore()方法将其插入document

它是如何运作的,请参考w3c reference

答案 1 :(得分:0)

IE不支持“下载”属性,只支持较新的浏览器,即。边缘,你需要小心在旧浏览器中使用新的HTML5功能,大多数时候你需要为这个特殊情况添加某种“后备”我建议:

    if (typeof link.download !== typeof undefined && link.download !== false) {
       var message = document.getElementById('Some <Span> ID Here').innerHTML('Right-click and select "Download Linked File"');
    }