我有一个带有按钮的页面,该按钮允许按地址下载XML文件。 在开头,连接到按钮的js代码是:
function downloadURI(uri, name) {
window.location = uri;
}
但是所有浏览器都打开了文件而不是下载它。然后我尝试了这段代码:
function downloadURI(uri, name) {
var link = document.createElement("a");
link.download = name;
link.href = uri;
link.click();
}
适用于IE,Edge,Opera和Chrome,但不适用于Firefox。任何人都可以帮我解决吗?
答案 0 :(得分:1)
Firefox不喜欢点击文档中没有的链接。因此,在document.body
调用之前将链接附加到link.click
(或其他任何内容)(然后在稍后{@ 1}}延迟之后删除它,例如:
setTimeout
如果这在您的设置中不起作用,我可靠地完成此操作的方式是使用户点击链接而不是按钮,并使链接按名称隐藏function downloadURI(uri, name) {
var link = document.createElement("a");
link.download = name;
link.href = uri;
document.body.appendChild(link);
link.click();
setTimeout(function() {
documet.body.removeChild(link);
}, 50);
}
,并且对链接请求的响应包含iframe
标题,该标题告诉浏览器下载而不是打开。