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

来源:2-7 编程练习

笨鸟不倒

2016-03-11 02:18


        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回答

  • ruiyang_0529
    2016-03-11 06:38:21
    已采纳

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

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

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

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

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


    笨鸟不倒

    原来这样,谢谢...

    2016-03-12 00:37:21

    共 1 条回复 >

JavaScript入门篇

JavaScript做为一名Web工程师的必备技术,本教程让您快速入门

739817 学习 · 9566 问题

查看课程

相似问题