为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

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

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

1 回复 有任何疑惑可以回复我~
#1

慕盖茨2714899 提问者

感谢大佬!~ 那if中间该换成什么不会先调用函数的? 估计是我浏览器问题没法正常开,不过我也是要先操作第一个完才能去点第二个
2018-08-03 回复 有任何疑惑可以回复我~
    你先定义了完整的函数,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>


1 回复 有任何疑惑可以回复我~
#1

慕盖茨2714899 提问者

哇!非常感谢!!
2018-08-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript入门篇
  • 参与学习       739958    人
  • 解答问题       9566    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信