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

在prompt中输入空网址 点击确定后 显示的是 “再见!” 难道不应该是“再见2!” 吗

function openWindow()
{var open=confirm("确认新建窗口打开网站吗?");
if(open==true)
    // 新窗口打开时弹出确认框,是否打开
{var url=prompt("通过输入对话框,确定打开的网址","http://www.imooc.com");
if(url!=null)
    // 通过输入对话框,确定打开的网址,默认为 http://www.imooc.com/
{window.open(url,"_blank",'width=400px,height=500px,menubar=no,toolbar=no');   
}
    //打开的窗口要求,宽400像素,高500像素,无菜单栏、无工具栏。
else
{alert("再见2!");}
}  
else
{alert("再见!");}
    }

这里的判断url!=null 到底起的什么作用

我prompt中输入空 点击确定 是打开了一个空白网页 为什么不是跳到 else中的 alert("再见2!")


正在回答

3 回答

首先 ;if和else 要搭配,不能混合使用;

其次;浏览器是从上往下从左往右进行执行的,这样的话LZ第一个if就被第二个if取代了,所以会直接忽略第一个if直接执行第二个if;

最后,LZ在prompt中输入空 ,刚好符合判断url!=null,所以会执行window.open中的语句:"_blank";

因此会打开空白网页,不会跳转。  


(如有不周到的地方,请多包涵!)

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

bingo624

补充一点:prompt(str1,str2) 其中str1是固定不能更改的,str2是可以更改的。LZ这里设置空,其实是str2为空,但是str1还是存在的,所以会继续认为url!=null,执行代码。
2016-06-29 回复 有任何疑惑可以回复我~
#2

ypc8272805 提问者

非常感谢
2016-06-30 回复 有任何疑惑可以回复我~
#3

ypc8272805 提问者 回复 bingo624

就是把 prompt没搞清楚 只有在点击取消后 才会返回null 我的排版有点乱 导致大家看 if else 语句是有点吃力 谔谔 下次认真排版
2016-06-30 回复 有任何疑惑可以回复我~

else只和最靠近他的前一个if对应  1对1

0 回复 有任何疑惑可以回复我~

if elseif else

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在prompt中输入空网址 点击确定后 显示的是 “再见!” 难道不应该是“再见2!” 吗

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