Javascript 在锚点中撤消返回false

Javascript 在锚点中撤消返回false,javascript,Javascript,我有以下下载链接(客户端): 我希望返回false之所以在这里,是因为我想在下载之前做一些事情,并在出现错误时阻止下载 但我也希望在一切正常时下载该文件,但它不起作用。我在鼠标单击事件上尝试了stopPropagation和preventDefault,但没有成功 如何处理此问题?您可以使用注释中解释的onclick=“somefunc():属性,或者您可以在javascript中收听单击事件而不更改HTML,就像这样 单击“使用javascript阻止锚点的默认行为”。preventDef

我有以下下载链接(客户端):


我希望
返回false
之所以在这里,是因为我想在下载之前做一些事情,并在出现错误时阻止下载

但我也希望在一切正常时下载该文件,但它不起作用。我在鼠标单击事件上尝试了
stopPropagation
preventDefault
,但没有成功

如何处理此问题?

您可以使用注释中解释的
onclick=“somefunc():
属性,或者您可以在javascript中收听
单击事件而不更改HTML,就像这样

单击“使用javascript阻止锚点的默认行为”。preventDefault()

var link=document.getElementById('download'),
file=link.getAttribute('href');
link.addEventListener('click',函数(evt){
evt.preventDefault();
警报(“您正在尝试下载”+文件);
});

您想要这份工作吗


函数运行(){
var测试=提示(“写入“是”);
如果(测试=“是”){
document.getElementById(“下载文件”)。单击();
}否则{
警惕(“你没有写“是”);
}
}
基本上,您有两个元素。一个用作按钮,另一个用作下载。如果您单击按钮并执行操作,请单击下载元素,它将开始下载文件


这有意义吗?我怀疑您能否在同一个文件上设置
download=“file.txt”
onclick=“someFunc()
,因为Javascript不能强制下载。

您可以
onclick='return someFunc()'
-并让someFunc有条件地返回false-只要“做一些事情”不是异步的,你应该是goldenshow你的代码你尝试了什么
<a href="#" download="file.txt" onclick="return false;">download</a>
<a href="#" onclick="run()">download</a>
<a href="#" id="downloadFile" download="https://upload.wikimedia.org/wikipedia/commons/e/e9/Official_portrait_of_Barack_Obama.jpg" style="display: none;"></a>


function run() {
    var test = prompt("Write \"yes\"");
    if(test == "yes") {
        document.getElementById("downloadFile").click();
    } else {
        alert("You didn't write \"yes\"");
    }
}