WEB开发中经常会遇到页面跳转或延时跳转的需求,掌握各种页面跳转方式非常必要。
以下是我总结有用HTML/JS/PHP三类方式实现跳转的方法,例子皆为三秒后跳转到index.php 页面。
1,HTML 方法:
在 HEAD 中添加 <meta> 标签
<meta http-equiv=”refresh” content=”3;url=’index.php’” >
2,JS 控制跳转方法
A.Location 直接加链接方式
<script type="text/javascript"> setTimeout("window.location=('index.php'",3000); </script>
B.Location.href 方式
<script type="text/javascript"> setTimeout("window.location.href='index.php'",3000); </script>
C.Location.assign 方式
<script type="text/javascript"> setTimeout("window.location.assign('index.php')",3000); </script>
D.Location.replace 方式(注意页面是被“替换”掉了,不会在浏览器的历史记录被查询到)
<script type="text/javascript"> Widdow.location.replace(‘index.php’); </script>
E.JS 历史记录 go(n) 方式( n 表示对历史记录相对当前页的前进步数, n 为负数表示返回以前的页面)
<script type="text/javascript"> window.history.go(n); </script>
F.JS 历史记录 go(url) 方式(注意 url 必须是历史记录内的,不然页面不会进行跳转)
<script type="text/javascript"> window.history.go(‘index.php’); </script>
G.JS window.open 方式,通过打开一个新窗口,实现跳转。(其第二个属性为可选目标选项,值可以是 frame id/_blank 等,第三个选项为新弹出窗口的具体设置选项,包括 height/width 等)
<script type="text/javascript"> setTimeout("window.open('index.php',target,args)",3000); </script>
3 , PHP 脚本控制跳转方式,通过改写 HTTP 头信息来进行跳转
A.header refresh 方式:
Header(“refresh:3;url=’index.php’”);
B. header location 方式 :
sleep(3); Header(“location:index.php”);
要注意这种方式会导致无法进入当前页面。即若当前在 register.php 页面链接到login.php 页面时, login.php 页面内用 header location 方式跳转,页面会从register.php 页面直接等待三秒跳转到 index.php ,不会进入到 login.php 页面,这是因为 header location 会对页面进行重定向。
如有错误,欢迎指正,谢谢。