为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我否定第1个判断时,还会继续执行里面的判断?


        var con = confirm("确定打开新窗口吗?");

        var prom = prompt('确定打开网址:','http://www.imooc.com');

        // 新窗口打开时弹出确认框,是否打开

        if(con==true){

            // 通过输入对话框,确定打开的网址,默认为 http://www.imooc.com/

            if(prom!==null){

                //打开的窗口要求,宽400像素,高500像素,无菜单栏、无工具栏。

                window.open(prom,'_blank','width=400px,height=500px,menubar=no,toolbar=no');

            }

            else{

                alert("请输入并确定您要打开的网址!");

            }

        }

        else{

            alert("您取消打开新窗口!");    

        }


我取消第1条判断时,为什么还会继续执行里面的判断呢?我哪里写错了?

当判断是否打开新窗口时,我否定,应该执行 alert("您取消打开新窗口!"); 才对吧?

正在回答

1 回答

你在if外先定义的 con 和 prom变量:

       var con = confirm("确定打开新窗口吗?");

        var prom = prompt('确定打开网址:','http://www.imooc.com');

所以在执行的时候 顺序执行,先弹出确认对话框con被赋值,对话框关闭,再弹出输入对话框prom被赋值,对话框关闭。然后con prom得到值以后再进行你的if判断。

你应该把prom的赋值 放在 if(con)的判断里 才对。


1 回复 有任何疑惑可以回复我~
#1

笨鸟不倒 提问者

原来这样,谢谢...
2016-03-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我否定第1个判断时,还会继续执行里面的判断?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信