由于浏览器安全限制,JavaScript无法直接通过脚本关闭当前窗口,因此无法完美实现“打开新窗口同时关闭旧窗口”的功能。本文介绍一种通过修改当前页面URL(重定向)来模拟该效果的替代方案,并列举了多种JavaScript页面跳转与返回的方法供参考。
通过重定向URL实现打开新窗口的同时“关闭”旧窗口
关于在JavaScript中实现打开新窗口并关闭旧窗口的需求,其实际效果与浏览器版本紧密相关。受限于现代浏览器的安全策略,目前尚无完美的通用解决方案。鉴于业务场景的必要性,这里提供一种通过重定向URL来实现类似效果的替代方法。
该方法的核心思路是通过重定向当前页面的URL,从而在视觉上实现“关闭”旧页面并展示新页面的效果。
示例文件:test1.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> test1 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script type="text/javascript">
function toNewWindow() {
window.top.location.href="test2.html";
}
</script>
<BODY>
<input type="button" value="打开另一个页面test2.html" onclick="toNewWindow()">
</BODY>
</HTML>
示例文件:test2.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>test2.html</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
通过重写URL,打开了要跳转的页面test2.html
</BODY>
</HTML>
附:页面跳转的各种方法
附录:JavaScript中常见的页面跳转方法汇总
第一种方法:
<script language="javascript" type="text/javascript">
window.location.href="/login.jsp?backurl="+window.location.href;
</script>
第二种方法:
<script language="javascript">
alert("返回");
window.history.back(-1);
</script>
第三种方法:
<script language="javascript">
window.navigate("top.jsp");
</script>
第四种方法:
<script language="JavaScript">
self.location='top.htm';
</script>
第五种方法:
<script language="javascript">
alert("非法访问!");
top.location='xx.jsp';
</script>
补充:JavaScript中弹出确认框后跳转页面
<script language="javascript">
<!--
function logout()...{
if (confirm("你确定要注销身份吗?是-选择确定,否-选择取消"))...{
window.location.href="/logout.asp?act=logout"
}
}
-->
</script>
补充:JavaScript中弹出提示框后跳转页面
<script language="javascript">
<!--
function logout()...{
alert("你确定要注销身份吗?");
window.location.href="/logout.asp?act=logout"
}
-->
</script>