sysadmin和编码Ignoramus试图制作一个简单的工作页面。它具有简单的JavaScript函数:
function run(job){
var ok = confirm("Are you sure?");
if(ok == true){
location = 'job.php?op=' + job;
window.location.href = location;
} else {
window.location.reload();
}
}
通过简单按钮调用:
<button style="color: red" onclick="run('test1');">Test1</button>
关键字很简单,就像我的理解一样。
这在Chrome中起作用,但是该按钮在Firefox(两个浏览器的当前版本)中没有任何作用。
在尝试调试脚本时,我在.href之前添加了一个简单的警报行,因此脚本读取类似:
function run(job){
var ok = confirm("Are you sure?");
if(ok == true){
location = 'job.php?op=' + job;
alert(location);
window.location.href = location;
} else {
window.location.reload();
}
}
...然后该脚本也在Firefox中工作。我可以看到警报出现短暂出现,但它立即重定向并消失了一秒钟。但是在Chrome中,弹出窗口持续存在,所以这不是一个很好的解决方法,而Firefox的行为很奇怪,告诉我我正在做。
我的问题是,为什么脚本的行为不一致,我如何避免这种行为,以便在两个浏览器中都保持一致,并且不需要额外的警报()?
我认为问题可能是location
在这种情况下等效于window.location
。由于您没有使location
成为本地变量,它将是隐含的全局。
将您的 location
变量重命名为其他东西,或使用" var location"将其更改为本地变量:
var location = 'job.php?op=' + job;
alert(location);
window.location.href = location;