如何为模拟click()防止Default()

时间:2019-04-20 21:48:49

标签: javascript

我想允许从如下所示的云URL下载。我可以阻止默认的页面刷新吗?

/* Server responded with a url and filename */

let a=document.createElement('a');
document.body.appendChild(a);
a.href=url ;
a.download =filename
a.click();

我尝试了这种方法来防止刷新。

function tempClick(e) {
   e.preventDefault();
   window.open(e.target.href);
}

a.addEventListener('click',tempClick);
a.click();


与侵入的window.open()

相比,我希望有一种更好的触发下载的方法

1 个答案:

答案 0 :(得分:1)

有趣的问题。

您是否已经尝试过here建议的“ window.location.assign()”或只是尝试“ window.location = url;”?办法?如果您的文件无法被浏览器渲染和/或以正确的“ Content-Disposition”类型进行响应,则似乎可以正常工作。

注意:除图像外,我没有找到要检查的文件。但是,使用“ window.location.assign()”(当然不是您想要的)时,图像只会在浏览器中打开。

编辑:当然,您根本不需要.click(),而只需执行window.location.assign()