<!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>第一次提交后自己弹出的提示框,点完确认后闪一下就关了,第二次去点按钮点击确认完才开的网页?
首先,HTML语句是顺序执行的。你先写了完整的openwindow函数,中间if内又引用了openwindow(),所以点提交后,还没有点”新窗口打开网站“按钮就直接自动跳转到提示框,使最后的onclick="openWindow()" 语句没来得及执行。
其次,至于你说的:第一次提交后自己弹出的提示框,点完确认后闪一下就关了,第二次去点按钮点击确认完才开的网页?
我测试结果是:第一次提交并确认后能正常打开新窗口,如果不把新窗口关闭就直接第二次提交并确认,是不会再打开另一个新窗口的,关闭第一个窗口后才会打开第二个。
你先定义了完整的函数,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>