如果确认忽略 location.href
if confirm ignores location.href
以下代码重新加载页面而不是所需的 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 的其他脚本运行良好,但这是唯一使用确认的脚本。
我也试过了
window.location.href = "http://whosebug.com";
但是页面仍然重新加载。
触发link是:
onClick="return delFile('Bill','1234')
delFile() 函数似乎缺少左大括号,所以我将从修复它开始。如果问题仍然存在,请检查 JS 控制台。另外,发布代码笔会很有帮助。
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;
}
}
触发 link 的 href 仍在 linked 中,因为如果 confirm
未被接受,delFile()
仅 return 为假-- 这就是导致页面重新加载的原因。当函数 return 为真时,link 在重定向发生之前触发。
您希望函数在所有情况下都为 return false,因此不要将 return 放在 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>
以下代码重新加载页面而不是所需的 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 的其他脚本运行良好,但这是唯一使用确认的脚本。
我也试过了
window.location.href = "http://whosebug.com";
但是页面仍然重新加载。
触发link是:
onClick="return delFile('Bill','1234')
delFile() 函数似乎缺少左大括号,所以我将从修复它开始。如果问题仍然存在,请检查 JS 控制台。另外,发布代码笔会很有帮助。
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;
}
}
触发 link 的 href 仍在 linked 中,因为如果 confirm
未被接受,delFile()
仅 return 为假-- 这就是导致页面重新加载的原因。当函数 return 为真时,link 在重定向发生之前触发。
您希望函数在所有情况下都为 return false,因此不要将 return 放在 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>