为什么这很简单;“确认”;javascript函数的行为异常
系统管理员和编码ignoramus试图创建一个简单的作业页面。它有一个简单的javascript函数:为什么这很简单;“确认”;javascript函数的行为异常,javascript,firefox,Javascript,Firefox,系统管理员和编码ignoramus试图创建一个简单的作业页面。它有一个简单的javascript函数: 函数运行(作业){ var ok=确认(“您确定吗?”); 如果(ok==真){ location='job.php?op='+job; window.location.href=位置; }否则{ window.location.reload(); } } 通过一个简单的按钮调用: Test1 这里的关键词很简单,就像我的理解 这在Chrome中有效,但在Firefox(两种浏览器的当前版
函数运行(作业){
var ok=确认(“您确定吗?”);
如果(ok==真){
location='job.php?op='+job;
window.location.href=位置;
}否则{
window.location.reload();
}
}
通过一个简单的按钮调用:
Test1
这里的关键词很简单,就像我的理解
这在Chrome中有效,但在Firefox(两种浏览器的当前版本)中该按钮没有任何作用
在尝试调试脚本时,我在.href之前添加了一个简单的警告行,因此脚本如下所示:
函数运行(作业){
var ok=确认(“您确定吗?”);
如果(ok==真){
location='job.php?op='+job;
警报(位置);
window.location.href=位置;
}否则{
window.location.reload();
}
}
。。。然后这个脚本也在Firefox中运行。我可以看到警报短暂出现,但它立即重定向并在几秒钟内消失。但在Chrome中,弹出窗口仍然存在,因此这不是一个好的解决办法,Firefox中的行为很奇怪,这告诉我我做错了
我的问题是,为什么脚本的行为不一致,我如何避免这种行为,使它在两种浏览器中都保持一致,并且不需要额外的警报()?我认为问题可能在于
位置
在该上下文中相当于窗口.location
。由于您没有将位置
设置为局部变量,因此它将是一个隐含的全局变量
将location
变量重命名为其他变量,或使用“var location”将其更改为局部变量:
var location = 'job.php?op=' + job;
alert(location);
window.location.href = location;
你试过调试它吗?您是否收到任何控制台错误?
if(ok)
相当于if(ok==true)
,但可读性更强。啊,这一定是原因,更改变量名修复了它。谢谢