在一個(gè)web項(xiàng)目中罪佳,url跳轉(zhuǎn)是最常用的技術(shù)之一敛熬。頁面跳轉(zhuǎn)可能是由于用戶單擊鏈接、按鈕等引發(fā)的鳍侣,也可能是系統(tǒng)自動(dòng)產(chǎn)生的丁稀。根據(jù)我個(gè)人的開發(fā)經(jīng)歷, 在此處總結(jié)出常用的實(shí)現(xiàn)頁面自動(dòng)跳轉(zhuǎn)的方法倚聚,集合了html二驰、javascript和php的各種方法。
方法解說:
1秉沼、 ? PHP的header實(shí)現(xiàn)頁面跳轉(zhuǎn):
header()函數(shù)的主要功能是將HTTP協(xié)議標(biāo)頭(header)輸出到瀏覽器。
header()函數(shù)的定義如下:
void header (string string [,bool replace [,int http_response_code]])
案例代碼:
//①重定向?yàn)g覽器
header("Location: http://www.nosee123.com");
//②使用refresh可以指定如30秒后再進(jìn)行頁面跳轉(zhuǎn)
header("refresh:30;url=www.nosee123.com");
//返回上一頁的方法
header(location:.getenv("HTTP_REFERER")); ? // ? 返回其調(diào)用頁面
注意:
① location和“:”號(hào)間不能有空格矿酵,否則不會(huì)跳轉(zhuǎn)唬复。
② 在用header前不能有任何的輸出。哪怕是一個(gè)空格,那么在頁頂會(huì)顯示錯(cuò)誤信息全肮。
③ header后的PHP代碼還會(huì)被執(zhí)行
④ 要是想在重定向之后敞咧,后續(xù)的代碼不會(huì)被執(zhí)行,最好后面加上一個(gè)exit()函數(shù)辜腺。
2休建、使用javascript實(shí)現(xiàn)頁面跳轉(zhuǎn)
// ①以下方式直接跳轉(zhuǎn)乍恐,比較常用的方法,后面直接跟指定要跳轉(zhuǎn)的地址即可测砂。
window.location.href='www.nosee123.com'
//后面的href可以省略掉(如果把href改為replace則表示跳轉(zhuǎn)后沒有后退功能 )
//更深入了解的話茵烈,這里的window還可以換成使用self、this砌些、parent呜投、top,分別代表不同的對象存璃。就比如:self指代當(dāng)前窗口對象仑荐;這里將不作一一解說,感興趣的同學(xué)可以深入學(xué)習(xí)纵东,當(dāng)然也歡迎來和我討論粘招。
//② 以下方式定時(shí)跳轉(zhuǎn)
setTimeout("javascript:location.href='nosee123.com'", 5000);
//③使用 open 語句實(shí)現(xiàn),而且可以指定是在原窗口偎球、父窗口洒扎、子窗口或者新窗口打開
window.open("www.nosee123.com","","_self");
//④navigate對象包含有關(guān)瀏覽器的信息,也可以作為頁面跳轉(zhuǎn)甜橱,后面直接加要跳轉(zhuǎn)的地方逊笆。沒有應(yīng)用于 navigator 對象的公開標(biāo)準(zhǔn),不過所有瀏覽器都支持該對象岂傲。
window.navigate("nosee123.com");
擴(kuò)展:使用javascript返回指定頁面的方法
//①參數(shù)是負(fù)幾难裆,就后退幾次。
window.history.back(-1);
//②
history.Go(-1);
3镊掖、使用HTML meta refresh實(shí)現(xiàn)跳轉(zhuǎn)
<meta http-equiv="refresh" content="0";url=http://nosee123.com/" />
這里的content屬性表示幾秒后執(zhí)行跳轉(zhuǎn)乃戈,比如:content=“5”表示5秒后執(zhí)行跳轉(zhuǎn)。
//在html標(biāo)簽鏈接嵌套js跳轉(zhuǎn)代碼的方法
<a rel="nofollow" target="_blank" href="javascript:history.go(-1)">返回上一步</a>
實(shí)用案例:
1. 結(jié)合了倒數(shù)的javascript頁面跳轉(zhuǎn)實(shí)現(xiàn)(IE)
<span id="totalSecond">5</span>
var second = totalSecond.innerText;
setInterval("redirect()", 1000);
function redirect(){
totalSecond.innerText=--second;
if(second<0) location.href='www.nosee123.com';
}
缺點(diǎn):firefox不支持(firefox不支持span亩进、div等的innerText屬性)
2. 結(jié)合了倒數(shù)的javascript頁面跳轉(zhuǎn)實(shí)現(xiàn)(firefox)
<span id="totalSecond">5</span>
var second = document.getElementById('totalSecond').textContent;
setInterval("redirect()", 1000);
function redirect(){
document.getElementById('totalSecond').textContent = --second;
if (second < 0) location.href = 'www.nosee123.com';
}
3. 解決Firefox不支持innerText的問題的整合方法
<span id="totalSecond">5</span>
var second = document.getElementById('totalSecond').textContent;
if (navigator.appName.indexOf("Explorer") > -1) ?{
second = document.getElementById('totalSecond').innerText;
} else {
second = document.getElementById('totalSecond').textContent;
}
setInterval("redirect()", 1000);
function redirect() {
if (second < 0) {
location.href = 'www.nosee123.com';
} else {
if (navigator.appName.indexOf("Explorer") > -1) {
document.getElementById('totalSecond').innerText = second--;
} else {
document.getElementById('totalSecond').textContent = second--;
}
}
}
4. 這個(gè)方法比較少用症虑,個(gè)人覺得比較麻煩
var jumpurl = 'http://www.nosee123.com/';
if (window.attachEvent) {
document.write('');
document.getElementById('exe').click();
} else {
document.write('');
document.getElementById('exe').click();
}
5. javascript中彈出提示框跳轉(zhuǎn)到其他頁面
function logout(){
if(confirm("你確定退出嗎?")){
window.location.href="logout.php";
}
}
以上就是我們向大家介紹的web頁面跳轉(zhuǎn)實(shí)現(xiàn)方法归薛,純屬個(gè)人經(jīng)驗(yàn)谍憔,如有錯(cuò)誤的地方歡迎指出。如有更好的方法也希望能夠和你有進(jìn)一步的交流主籍。