<!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>
所以prompt()运行后,默认都是else,
而每次prompt()窗口结束前都会去运行这个else中的语句(必定执行的语句),所以当你在窗口点击取消按钮后(窗口结束后运行alert语句),运行结果为以上结果。
你的myinput的值,只有两种可能,一种是空值,一种是非空值。但是你写了三个分支。。。
把else myinput.close();改成if window.close();试试