Javascript 下载文件而不刷新页面
我有一个javascript页面,它有一个具有特定细节的表。单击一行,它将下载一个JSON文件。我可以下载文件,但下载后页面会刷新Javascript 下载文件而不刷新页面,javascript,Javascript,我有一个javascript页面,它有一个具有特定细节的表。单击一行,它将下载一个JSON文件。我可以下载文件,但下载后页面会刷新 函数测试下载(){ 常量数据={a:“ajith”,b:“kumar”}; 常数数据传输= “data:text/json;charset=utf-8,”+encodeURIComponent(json.stringify(data)); const downloadAnchorNode=document.createElement(“a”); 下载anchorno
函数测试下载(){
常量数据={a:“ajith”,b:“kumar”};
常数数据传输=
“data:text/json;charset=utf-8,”+encodeURIComponent(json.stringify(data));
const downloadAnchorNode=document.createElement(“a”);
下载anchornode.setAttribute(“href”,dataStr);
调试器;
下载anchornode.setAttribute(“id”,“anchor”);
setAttribute(“下载”、“提取”+“.json”);
document.body.appendChild(downloadAnchorNode);//firefox需要
下载AnchorNode.click();
}
如何在下载完成后限制页面刷新?如果单击按钮下载JSON,请尝试以下代码:
function testDownload(e) {
e.preventDefault();
const data = { a: "ajith", b: "kumar" };
const dataStr =
"data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(data));
const downloadAnchorNode = document.createElement("a");
downloadAnchorNode.setAttribute("href", dataStr);
debugger;
downloadAnchorNode.setAttribute("id", "anchor");
downloadAnchorNode.setAttribute("onclick", "testDownloadFun(event)");
downloadAnchorNode.setAttribute("download", "extracted" + ".json");
document.body.appendChild(downloadAnchorNode); // required for firefox
downloadAnchorNode.click();
}
我添加了“preventDefault”方法。add
returnfalse
function@AkashShrivastava,请解释为什么他必须添加return false
?downloadAnchorNode.onclick=function(){testDownloadFun(event);return false}
并确保未从submit调用testDownLoadevent@AhmedsaysReinstateMonica下载AnchorNode.click()
将调用浏览器重定向,但此处返回false的工作方式与e.preventDefault
相同,并取消重定向事件对不起,testDownloadFun()对我为测试目的添加的代码没有任何影响。我尝试了preventDefault功能,但下载还没有开始。不,它会阻止为每个元素实现默认功能:例如,切换复选框是单击复选框的默认操作。这个方法演示了如何防止这种情况发生。它不起作用,因为在下载AnchorNode.click()之后还有另一个click事件触发器;我必须防止默认的点击事件,并下载文件。有什么方法可以实现这一点吗?向按钮HTML元素添加“type='button'”属性怎么样?