本文討論網頁自動跳轉的幾種實現方法。
方法一:使用meta標籤meta標籤是html不可或缺的標籤之一,它負責提供文檔的元資訊,其參數主要有:
① http-equiv: 與 文檔中資料相關的HTTP檔案首部
② content: 與命名HTTP首部相關的資料
③ name: 文檔描述
④ url: 與元資訊相聯絡的URL當我們定義屬性http-equiv為refresh,開啟此Web頁時系統將根據content規定的值在一定時間內跳轉到相應頁面,content="秒數;url=網址"就是定義了過多長時間跳轉到指定的網址。以下meta標籤告訴系統一秒鐘後頁面自動跳轉到黑馬線上動力:
<meta http-equiv="refresh" content="1;url=http://www.jb51.net/">
以上代碼需要加在HTTP文檔首部中,介於<head>與</head>之間,通常,meta標籤是緊跟在<head>之後。若需要有多個meta標籤,它們可以各佔一行。
此法通用於任何環境,包含靜態網站空間。
方法二:使用header函數header函數是php內建函數中的HTTP相關函數之一,該函數送出HTTP協議標題到瀏覽器。使用它可以重新導向URL,即令頁面轉向其他指定的網頁。以下例子,執行後將自動開啟黑馬線上動力首頁:
header("Location: http://www.jb51.net/");
必須注意,header函數只能用在頁面代碼中的<html>標籤之前,亦即,HTTP首部尚未有其他任何標題(<head>)傳送給瀏覽器之前,而且,此前頁面也不能print或echo任何內容。換句話說,在頁面的<html>出現前,程式只單純地處理header事件。儘管有如此嚴格的要求,靈活地使用它,仍然可以達成頁面的自動跳轉功能,比如登入頁面,通過判斷使用者提交的資料是否合法來決定頁面跳轉到何處。以下給出一個簡單的例子:
複製代碼 代碼如下:<?php
/* 登入程式 - 檔案名稱:login.php
程式作用 - 判斷使用者登入口令 */
if($_POST['Submit']) {
session_start();
if($_POST['pws']=='123') { //若密碼為 123
$_SESSION['passwd']='123'; //寫入會話資料
header("Location:index.php"); //跳轉到正常頁面
}else{
header("Location:login.php"); //跳轉到登入頁面
}
}
//表單代碼略(也可以用純html代碼寫表單,若如此,代碼應放在程式之後
?>
<?php
/* 檢測會話資料 - 檔案名稱:index.php
程式作用 - 檢測會話資料中的密碼是否為123,若不是,返回
登入頁面 */
session_start();
if($_SESSION['passwd']!='123') header("Location:login.php");
//其他代碼(純HTML代碼應寫在程式之後)
?>
此法顯然只能用於支援php的空間環境。
方法三:使用JavaScriptJS非常靈活,利用它可以做出功能非常強大的程式指令碼,這裡僅舉一個簡單的頁面自動跳轉的JS例子。以下代碼執行後瀏覽器將自動轉到黑馬線上動力網站,該代碼可放在頁面中的任何合法的位置:
<script language="javascript" type="text/javascript"> window.location.href("http://www.jb51.net");</script>此代碼適用於任何Web環境。若加入定時器,將更加妙不可言。
經常遇到頁面自動跳轉的問題 例如在有些網站需要在退出登入時出現一個提示頁面
什麼你正在退出只類客套話,有的還要作個倒記時
方法一:
<meta http-equiv="refresh" content="‘等待時間';URL=‘跳轉頁面'">
方法二:
這是一個js的應用。
測試代碼: 複製代碼 代碼如下:<input type=button value="點擊開始" onClick="t=5">
<span id="view"></span>
<script>
t = -1; // 計數器
setInterval("testTime()",1000); // 啟動1秒定時
function testTime() {
if(t<0) return; // 計數器值小於0,表示尚未開始倒計時
if(t == 0) // 計數器值為0,轉向
location = "http://www.jb51.net";
view.innerHTML = "<b>"+t+"</b>"; // 顯示倒計時
t--; // 計數器遞減
}
function offTime() {
if(event.srcElement.value != "點擊開始") { // 若不是倒計時開始
t = -1; // 初始計數器
view.innerHTML = ""; // 清空倒計時
}
}
document.onclick = offTime; // 啟動點擊事件監視
</script>