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

为什么打不开新窗口

<!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 x = confirm("是否打开一个网页");

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

           if(a==true){

              var b =prompt("请输入你要打开的网址","http://www.imooc.com/");

           }

              if(b!=null){

                 window.open("http://www.imooc.com/","_blank","width=400,height=500,menubar=no,toolbar=no");

         else{

             alert("拜拜");

         }

     }

      else{

      alert("拜拜");

   }

  

  }

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


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

    

    

  </script> 

 </head> 

 <body> 

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

 </body>

</html>


提问者:慕神7119205 2021-06-20 00:52

个回答

  • 慕神4427434
    2021-06-29 18:34:39

     var x = confirm("是否打开一个网页")这句comfirm()赋值给了变量x;

     if(a==true){var b =prompt("请输入你要打开的网址","http://www.imooc.com/");}你这里的判断的时候应该用变量x,而不是用a,因为confirm返回的是true和false,所以x被赋值之后是true或者false,你这里是要判断x是不是true,如果等于就执行代码块。

     if(b!=null){window.open("http://www.imooc.com/","_blank","width=400,height=500,menubar=no,toolbar=no") else{ alert("拜拜");} 这里用b!=null来判断是否为空值,可能会出现判断无效的情况,因为有可能默认是空字符所以可以用b!=""来判断

  • 慕仰8255163
    2021-06-20 23:01:30

    你好,我刚刚试了一下

    首先, var x = confirm("是否打开一个网页"); 这里只是赋值,这样不算是使用,应该把 confirm前面的删掉,然后

    if(a==true){

                  var b =prompt("请输入你要打开的网址","http://www.imooc.com/");

               }

    这里a没有赋值,a的初始值默认是随机还是0来着,我不知道,但绝不会等于true,另外因为a没有赋值,发生报错,就没执行后面的语句了,还有后面的,这里也错了,b的赋值在上一个if 里有效,这个if 里b就失效了,也报错

     if(b!=null){

                     window.open("http://www.imooc.com/","_blank","width=400,height=500,menubar=no,toolbar=no");

             else{

                 alert("拜拜");

             }

         }