问答详情
源自:2-7 编程练习

求助,我这样写为什么不能直接关闭prompt

<!DOCTYPE html>

<html>

 <head>

  <title> new document </title>  

  <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>   

  <script type="text/javascript">  

    function openWindow(){

    var mymessage=confirm("是否打开新的网站?");

    var myinput;

    if(mymessage==true)

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

    {

        myinput=prompt("请输入网站:");

        if(myinput!="")

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

        else if(myinput=="")

        window.open('www.imooc.com','_blank','width=400,height=500,menubar=no,toolbar=no');

        else myinput.close();

    }

    else mymessage.close();

    }

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


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

    

    

  </script> 

 </head> 

 <body> 

  <input type="button" value="新窗口打开网站" onclick="openWindow()" /> 

 </body>

</html>


提问者:半吊子渔者 2019-07-23 10:05

个回答

  • 幕布斯3124865
    2019-07-23 14:40:11
    已采纳

    所以prompt()运行后,默认都是else, 
    而每次prompt()窗口结束前都会去运行这个else中的语句(必定执行的语句),所以当你在窗口点击取消按钮后(窗口结束后运行alert语句),运行结果为以上结果。 

  • qq_莫懒_0
    2019-07-28 22:36:30

    你的myinput的值,只有两种可能,一种是空值,一种是非空值。但是你写了三个分支。。。

  • 幕布斯3124865
    2019-07-23 16:08:42

    把else myinput.close();改成if window.close();试试