下载XML而不是打开

时间:2017-02-05 11:01:19

标签: javascript

我有一个带有按钮的页面,该按钮允许按地址下载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。任何人都可以帮我解决吗?

1 个答案:

答案 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标题,该标题告诉浏览器下载而不是打开。