我正在设置一个新的xml文件下载Web应用程序,并希望提供链接以使用Javascript客户端下载xml文件。
根据caniuse.com(https://caniuse.com/#search=download),Safari> 10.1支持download属性。不幸的是,与chrome和firefox之类的其他浏览器相比,这种情况在safari的情况下似乎不起作用。基本上,单击href元素后,它将转到下一个屏幕,并且不会进行下载。
为此,我编写了以下href脚本。
var link = document.createElement("a");
link.download = filename;
link.target = "_blank";
// Construct the URI
link.href = DOWNLOAD_URL;
document.body.appendChild(link);
link.click();
// Cleanup the DOM
document.body.removeChild(link);
要使其工作正常,请在点击事件中添加超时,如下面的代码所示,它开始工作。请检查-
var link = document.createElement("a");
link.download = filename;
link.target = "_blank";
// Construct the URI
link.href = DOWNLOAD_URL;
document.body.appendChild(link);
setTimeout(function() {
link.click();
// Cleanup the DOM
document.body.removeChild(link);
DOWNLOAD_COMPLETED = true;
document.getElementById('nextButton').onclick();
}, 500);
我想了解为什么野生动物园的行为与其他浏览器相比有所不同。 Safari浏览器的内部下载属性实现在某种程度上是异步的
我的下载脚本是否出错?你能帮助我吗?非常感谢!