J2EE社区

苟有恒,何必三更起五更眠;
最无益,只怕一日曝十日寒.
posts - 241, comments - 318, trackbacks - 0, articles - 16

Javascript关闭当前窗口

Posted on 2010-03-25 11:45 xcp 阅读(1817) 评论(0)  编辑  收藏 所属分类: Javascript

这个太简单了,window.close()就可以了;

不过它会出个提示“您查看的网页正在试图关闭窗口。是否关闭窗口?”,能不能不出这个提示?N年前就有人问过我,那时候我还是菜鸟,不过我的回答还算“专业”。呵呵;

“如果你第一次打开这个网页,window.close()就会弹出提示,如果这个网页是由其它的网页window.open()出来的页 面,window.close()时,就不会出现提示;还有,当chm帮助文档中的页面,在点击关才,激活window.close()时,也会不出提 示。”

上面的回答,是我当时通过测试得出的结果。没有进行过“理论”分析,那个时候,对javascript还仅仅是会用一些简单方法而已。

这个小问题,我也没有当回过事儿,前两天,有朋友问到,我也是这样回答,不过他说,见别人可以的,希望我能帮帮忙,我说,不太可能吧,不过忽然想起,opener语句;

window.opener语句,可以返回打开当前页面的那个网页,就是在a.htm中,open()了b.htm页面,那么,在b.htm页面中,window.opener,就会返回a.htm。

如,我在b.html写入
alert(window.opener.location.href);
就会弹出a.htm的完整路径;

那么,当我window.close()时,它是不是能过opener来判断当前页是不是被open的呢?试一下就知道喽;

<script language="JavaScript" type="text/javascript">
function cl()
{
window.opener='';
window.close();
}
</script>

上面的方法就是当前页面的opener赋为空字符串(空字串可不是null,并不是为空),然后关闭当前页,随便做个按钮,来触发这个方法;
<input type="submit" onclick="cl()" name="Submit" value="提交" />

果然,点击即关闭了当前窗口,且没有提示;呵呵;

想到,可能会用在框架页面,就是frame的子页中,那么上面的代码是不是应该写成

<script language="JavaScript" type="text/javascript">
function cl()
{
window.top.opener='';
window.top.close();
}
</script>

我没有做测试,应该可以的吧。




名称: ♪4C.ESL | .↗Evon
口号: 遇到新问题♪先要寻找一个方案乄而不是创造一个方案こ
mail: 联系我



只有注册用户登录后才能发表评论。


网站导航: