这个太简单了,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>
我没有做测试,应该可以的吧。