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

来源:2-7 编程练习

半吊子渔者

2019-07-23 10:05

<!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>


写回答 关注

3回答

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

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

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

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

    qq_莫懒_...

    myinput==null时表明你按下了取消键,myinput==""时表明文本为空。

    2019-07-28 22:40:32

    共 1 条回复 >

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

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

    半吊子渔者

    还是不行,用if window.close()和else window.close(),点击取消都会出现一个Null的窗口

    2019-07-23 16:12:34

    共 1 条回复 >

JavaScript入门篇

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

739822 学习 · 9566 问题

查看课程

相似问题