Javascript 如果确认忽略location.href

Javascript 如果确认忽略location.href,javascript,confirm,Javascript,Confirm,下面的代码将重新加载页面而不是所需的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);

下面的代码将重新加载页面而不是所需的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')

看起来delFile()函数缺少开头的大括号,所以我首先要解决这个问题。如果问题仍然存在,请检查JS控制台。此外,张贴代码笔也会有所帮助

触发链接上的href仍被链接到,因为
delFile()
只有在
确认
未被接受时才会返回false,这就是导致页面重新加载的原因。当函数返回true时,链接在重定向发生之前激发

    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;
    }
    }
您希望函数在所有情况下都返回false,因此不要将返回放在
else
子句中

函数delFile(名称、id){
if(确认('是否确实要删除'+name+'?')){
location.href='/cgi-bin/cnc.cgi?phrsrg~038919718485478~'+id;
警报('/cgi-bin/cnc.cgi?phrsrg~038919718485478~'+id);
}
return false;//始终,因为您始终希望阻止链接的默认行为。(也可以在此处使用event.preventDefault。)
}

试着显示一个。您提供了部分代码,但没有提供整个链接。是否尝试使用window.open(');打开大括号时,刚好在签名之后,就丢失了
delFile
signature我希望您已经找到了它,但不幸的是,它是一个错误的复制和粘贴。大括号确实存在于脚本中,并且已通过编辑添加到我的查询中。感谢检查JS控制台中的错误和/或尝试添加一些断点。你想把范围缩小到它失败的步骤和原因。