为什么初始化就弹出对话框?

来源:2-7 编程练习

慕盖茨2714899

2018-08-02 20:50

<!DOCTYPE html>
<html>
 <head>
  <title> new document </title>  
  <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>   
  <script type="text/javascript">
   function openwindow()
       {
           window.open('http://www.imooc.com/','null','width=400,height=500,menubar=no,toolbar=no')
       }
    var mymessage=confirm("是否打开新窗口?");
    if(mymessage==true)
    {
        openwindow()
    }
    else
    {
        document.write("您取消了操作");
    }
     
    // 新窗口打开时弹出确认框,是否打开
    // 通过输入对话框,确定打开的网址,默认为 http://www.imooc.com/
    //打开的窗口要求,宽400像素,高500像素,无菜单栏、无工具栏。 
  
  </script> 
 </head> 
 <body> 
  <input type="button" value="新窗口打开网站" onclick="openWindow()" /> 
 </body>
</html>

第一次提交后自己弹出的提示框,点完确认后闪一下就关了,第二次去点按钮点击确认完才开的网页?

写回答 关注

2回答

  • Z_Chris
    2018-08-02 22:34:32
    已采纳

        首先,HTML语句是顺序执行的。你先写了完整的openwindow函数,中间if内又引用了openwindow(),所以点提交后,还没有点”新窗口打开网站“按钮就直接自动跳转到提示框,使最后的onclick="openWindow()" 语句没来得及执行。

        其次,至于你说的:第一次提交后自己弹出的提示框,点完确认后闪一下就关了,第二次去点按钮点击确认完才开的网页?

        我测试结果是:第一次提交并确认后能正常打开新窗口,如果不把新窗口关闭就直接第二次提交并确认,是不会再打开另一个新窗口的,关闭第一个窗口后才会打开第二个。

    慕盖茨271...

    感谢大佬!~ 那if中间该换成什么不会先调用函数的? 估计是我浏览器问题没法正常开,不过我也是要先操作第一个完才能去点第二个

    2018-08-03 00:03:55

    共 1 条回复 >

  • Z_Chris
    2018-08-03 15:32:20
        你先定义了完整的函数,if内的就只能改成window.open(.....)才不会调用函数,但是这样一来你的代码就完全乱了,函数的定义就显得有点鸡肋。按照你的思路,我能力有限,想不到怎么改。
    
        下面是我写的一个代码例子,你可以看一下。我的思路是将所有的语句都包括在openwindow()函数内,即<script>到</script>内的内容都是函数的定义,最后的再用onclick="openWindow()引用函数就行了。
    
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>openwindow</title>
      <script type="text/javascript">
      function openwindow(){
        var open=confirm("确定要打开新窗口吗?") ;
        if(open==true)
        {
            var net;
            net=prompt("请输入你想打开的网址:",) ;
            //括号里面的逗号不能少,不然输入的网址不能正常赋值给net。可以输入任意你想访问的网址
            //逗号后加"http://www.imooc.com/"的话,就会默认要打开的新窗口是http://www.imooc.com
            if(net!=null)
            {
             window.open(net,'_blank','width=400,heigh=500,menubar=no,toolbar=no');
            //window.open()内的net不用单引号括起来
            }
            else
            {
            //可考虑用正则表达式判断网址是否正确
            alert("你输入的网址错误");
            }
        }
        else
        {
            window.close();
        }
      }    
      </script>
    </head>
    <body>
        <input name="button" type="button" onClick="openwindow()" value="点击我,打开新窗口" />
    </body>
    </html>


    慕盖茨271...

    哇!非常感谢!!

    2018-08-03 15:50:18

    共 1 条回复 >

JavaScript入门篇

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

739817 学习 · 9566 问题

查看课程

相似问题