Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这很简单;“确认”;javascript函数的行为异常_Javascript_Firefox - Fatal编程技术网

为什么这很简单;“确认”;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(两种浏览器的当前版

系统管理员和编码ignoramus试图创建一个简单的作业页面。它有一个简单的javascript函数:

函数运行(作业){
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)
,但可读性更强。啊,这一定是原因,更改变量名修复了它。谢谢