以下代码重新加载页面而不是所需的URL
function delFile(name,id) {
if (confirm('Are you sure you want to DELETE '+name+'?')) {
location.href='/cgi-bin/cnc.cgi?phrsrg~038919718485478~'+id ;
alert('/cgi-bin/cnc.cgi?phrsrg~038919718485478~'+id);
}
else {
return false;
}
}
在警报中,ID显示为正确添加且URL正确。我可以从警报中复制它,然后使用该文本来获得正确的结果。使用类似location.href的同一页面上的其他脚本工作正常,但这是唯一一个使用confirm。
我也试过
window.location.href = "http://stackoverflow.com";
但页面仍在重新加载。
触发链接是:
onClick="return delFile('Bill','1234')
答案 0 :(得分:1)
触发链接上的href仍然被关联,因为delFile()
仅在confirm
未被接受时才返回false - 导致页面重新加载的原因是什么。当函数返回true时,链接在重定向发生之前触发。
您希望函数在所有情况下都返回false,因此不要将返回值放在else
子句中。
function delFile(name, id) {
if (confirm('Are you sure you want to DELETE ' + name + '?')) {
location.href = '/cgi-bin/cnc.cgi?phrsrg~038919718485478~' + id;
alert('/cgi-bin/cnc.cgi?phrsrg~038919718485478~' + id);
}
return false; // always, since you always want to prevent the link's default behavior. (Could also use event.preventDefault here.)
}

<a href="/" onClick="return delFile('Bill','1234')">test</a>
&#13;
答案 1 :(得分:0)
看起来delFile()函数缺少开口大括号,所以我首先修复它。如果问题仍然存在,请检查JS控制台。另外,发布一个codepen会很有帮助。
答案 2 :(得分:0)
function delFile(name,id){
if (confirm('Are you sure you want to DELETE '+name+'?')) {
/* var fullpath = better to use the full url name/link;*/
var url = '/cgi-bin/cnc.cgi?phrsrg~038919718485478~'+id;
window.open(url, '_parent');
alert('/cgi-bin/cnc.cgi?phrsrg~038919718485478~'+id);
}
else {
return false;
}
}
答案 3 :(得分:-1)
而不是使用
window.location.href ="url" ;
尝试
window.location.replace("url")
此方法使浏览器以不同的方式加载。
我还没有对此进行测试,但我希望它有效。