下面對使用JavaScript實現頁面定時跳轉(也稱倒計時跳轉)做一下總結,各種定時跳轉代碼記錄如下:
常用的頁面跳轉代碼
第一種:
代碼如下 |
複製代碼 |
<script language="javascript"> window.location.href="index.php"; //比較常用的方法,沒什麼可解釋的,後面直接跟指定要跳轉的地方。 </script> |
第二種:
代碼如下 |
複製代碼 |
<script language="javascript"> alert("返回"); window.history.back(-1); //類似於按鈕,參數是負幾,就後退幾次。 </script> |
第三種:
代碼如下 |
複製代碼 |
<script language="javascript"> window.navigate("index.jsp"); //navigate對象包含有關瀏覽器的資訊,也可以作為頁面跳轉,後面直接加要跳轉的地方。 //沒有應用於 navigator 對象的公開標準,不過所有瀏覽器都支援該對象。 </script> |
第四種:
代碼如下 |
複製代碼 |
<script language="JavaScript"> self.location.href=index.htm; //self指代當前視窗對象,屬於window最上層的對象; //location.href 指的是某window對象的URL地址. //self.location.href指當前視窗的URL地址,去掉self預設為當前視窗的URL地址. </script> |
頁面定時跳轉代碼
(1)使用 setTimeout 函數實現定時跳轉(如下代碼要寫在body地區內)
代碼如下 |
複製代碼 |
<script type="text/javascript"> // 3秒鐘之後跳轉到指定的頁面 setTimeout(window.location.href = "http://www.111cn.net", 3); </script> |
(2)html代碼實現,在頁面的head地區塊內加上如下代碼
代碼如下 |
複製代碼 |
<!-- 5秒鐘後跳轉到指定的頁面 --> <meta http-equiv="refresh" content="5;url=http://www.111cn.net" /> |
(3)稍微複雜點,多見於登陸之後的定時跳轉
代碼如下 |
複製代碼 |
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js定時跳轉頁面的方法</title> </head> <body> <script type="text/javascript"> var t = 10; // 設定跳轉的時間 setInterval("refer()", 1000); // 啟動1秒定時 function refer(){ if (t == 0) { location = "http://www.111cn.net"; // 設定跳轉的連結地址 } document.getElementById('show').innerHTML = "" + t + "秒後跳轉到php程式員教程網"; // 顯示倒計時 t--; // 計數器遞減 } </script> <span id="show"></span> </body> </html> |
(4)利用 php header實現頁面重新導向已達到頁面定時跳轉的目的
代碼如下 |
複製代碼 |
<?php /** @title:PHP實現定時跳轉 @功能:等待指定的時間,然後再跳轉到指定頁面(代替html meta方式) */ header("refresh:3;url=http://www.111cn.net"); echo '正在載入,請稍等...<br>三秒後自動跳轉'; /* 說明:若等待時間為0,則與header("location:")等效。 */ ?> |
頁面顯示倒計時的定時跳轉
代碼如下 |
複製代碼 |
<script type="text/javascript">
startTime();//調用函數 var i=-1;//初始化 var t; function startTime() i++;//計算遞迴次數 var m=20;//初始值分為20分鐘 var s=0;//初始秒為0 m=checkTime(Math.floor((60*m-i*0.5)/60));//顯示分鐘數取整後正常化 s=checkTime(Math.floor((60*m-i*0.5)%60)); //顯示秒數取整後正常化 if(m==0 && s==0) clearTimeout(t);//停止時間設定 top.window.location="Logout.aspx";//從架構中的整體頁面跳轉到新頁面 else document.getElementById('d').innerHTML=m+":"+s;//在id=d的span中顯示倒計時 t=setTimeout('startTime()',500);//設定時間每0.5秒鐘時間變一次 function checkTime(i)//規範時間的顯示 if (i<10) {i="0" + i} return i; </script> |