亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

全面考察“禁用瀏覽器后退”

2020-10-23 18:49:02
字體:
來源:轉載
供稿:網友
瀏覽器的后退按鈕使得我們能夠方便地返回以前訪問過的頁面,它無疑非常有用。但有時候我們不得不關閉這個功能,以
防止用戶打亂預定的頁面訪問次序。本文介紹網絡上可找到的各種禁用瀏覽器后退按鈕方案,分析它們各自的優缺點和適
用場合。 
一、概述 
   曾經有許多人問起,“怎樣才能‘禁用'瀏覽器的后退按鈕?”,或者“怎樣才能防止用戶點擊后退按鈕返回以前瀏
覽過的頁面?”在ASP論壇上,這個問題也是問得最多的問題之一。遺憾的是,答案非常簡單:我們無法禁用瀏覽器的后退
按鈕。 
   起先我對于居然有人想要禁用瀏覽器的后退按鈕感到不可思議。后來,看到竟然有那么多的人想要禁用這個后退按
鈕,我也就釋然(想要禁用的只有后退按鈕,不包括瀏覽器的前進按鈕)。因為在默認情況下,用戶提交表單之后可以通
過后退按鈕返回表單頁面(而不是使用“編輯”按鈕?。?,然后再次編輯并提交表單向數據庫插入新的記錄。這是我們不
愿看到的。 
   因此我就決定要找出避免出現這種情況的方法。我訪問了許多網站,參考了這些網站所介紹的各種實現方法。如果你
經常訪問ASP編程網站,本文所介紹的部分內容你可能已經見到過。本文的任務是把各種可能的方法都介紹給大家,然后找
出最好的方法! 
二、禁止緩存 
   在我找到的許多方案中,其中有一種建議禁止頁面緩存。具體是使用服務器端腳本,如下所示: 
<% 
Response.Buffer = True 
Response.ExpiresAbsolute = Now() - 1 
Response.Expires = 0 
Response.CacheControl = "no-cache" 
%> 
   這種方法非常有效!它強制瀏覽器重新訪問服務器下載頁面,而不是從緩存讀取頁面。使用這種方法時,編程者的主
要任務是創建一個會話級的變量,通過這個變量確定用戶是否仍舊可以查看那個不適合通過后退按鈕訪問的頁面。由于瀏
覽器不再緩存這個頁面,當用戶點擊后退按鈕時瀏覽器將重新下載該頁面,此時程序就可以檢查那個會話變量,看看是否
應該允許用戶打開這個頁面。 
   例如,假設我們有如下表單: 
<% 
Response.Buffer = True 
Response.ExpiresAbsolute = Now() - 1 
Response.Expires = 0 
Response.CacheControl = "no-cache" 
If Len(Session("FirstTimeToPage")) > 0 then 
&single; 用戶已經訪問過當前頁面,現在是再次返回訪問。 
&single; 清除會話變量,將用戶重定向到登錄頁面。 
Session("FirstTimeToPage") = "" 
Response.Redirect "/Bar.asp" 
Response.End 
End If 
&single; 如果程序運行到這里,說明用戶能夠查看當前頁面 
&single; 以下開始創建表單 
%> 
<form method=post action="SomePage.asp"> 
<input type=submit> 
</form> 
   我們借助會話變量FirstTimeToPage檢查用戶是否是第一次訪問當前頁面。如果不是第一次(即Session
("FirstTimeToPage")包含某個值),那么我們就清除會話變量的值,然后把用戶重新定向到一個開始頁面。這樣,當表單
提交時(此時SompePage.asp被打開),我們必須賦予FirstTimeToPage一個值。即,在SomePage.asp中我們需要加上下面
的代碼: 
Session("FirstTimeToPage") = "NO" 
   這樣,已經打開SomePage.asp的用戶如果點擊后退按鈕,瀏覽器將重新請求服務器下載頁面,服務器檢查到Session
("FirstTimeToPage")包含了一個值,于是就清除Session("FirstTimeToPage"),并把用戶重定向到其他頁面。當然,所有
這一切都需要用戶啟用了Cookie,否則會話變量將是無效的。(有關該問題的更多說明,請參見For session variables 
to work, must the Web visitor have cookies enabled?) 
   另外,我們也可以用客戶端代碼使瀏覽器不再緩存Web頁面: 
<html> 
<head> 
<meta http-equiv="Expires" CONTENT="0"> 
<meta http-equiv="Cache-Control" CONTENT="no-cache"> 
<meta http-equiv="Pragma" CONTENT="no-cache"> 
</head> 
   如果使用上面的方法強制瀏覽器不再緩存Web頁面,必須注意以下幾點: 
只有在使用安全連接時“Pragma: no-cache”才防止瀏覽器緩存頁面。對于不受安全保護的頁面,“Pragma: no-cache”
被視為與“Expires: -1”相同,此時瀏覽器仍舊緩存頁面,但把頁面標記為立即過期。 
在IE 4或5中,“Cache-Control”META HTTP-EQUIV標記將被忽略,不起作用。 
   在實際應用中我們可以加上所有這些代碼。然而,由于這種方法不能適用于所有的瀏覽器,所以是不推薦使用的。但
如果是在Intranet環境下,管理員可以控制用戶使用哪種瀏覽器,我想還是有人會使用這種方法。 
三、其他方法 
   接下來我們要討論的方法以后退按鈕本身為中心,而不是瀏覽器緩存。這兒有一篇文章Rewiring the Back Button很
值得參考。不過我注意到,如果使用這種方法,雖然用戶點擊一下后退按鈕時他不會看到以前輸入數據的頁面,但只要點
擊兩次就可以,這可不是我們希望的效果,因為很多時候,固執的用戶總是能夠找到繞過預防措施的辦法。 
   另外一種禁用后退按鈕的辦法是用客戶端JavaScript打開一個沒有工具條的窗口,這使得用戶很難返回前一頁面,但
不是不可能。一種更安全但相當惱人的方法是,當表單提交時打開一個新的窗口,與此同時關閉表單所在的窗口。但我覺
得這種方法不值得認真考慮,因為我們總不能讓用戶每提交一個表單就打開一個新窗口。 
   那么,在那個我們不想讓用戶返回的頁面是否也可以加入JavaScript代碼呢?在這個頁面中加入的JavaScript代碼可
用來產生點擊前進按鈕的效果,這樣也就抵消了用戶點擊后退按鈕所產生的動作。用于實現該功能的JavaScript代碼如下
所示: 
<script language="JavaScript"> 
<!-- 
javascript:window.history.forward(1); 
//--> 
</script> 
   同樣地,這種方法雖然有效,但距離“最好的方法”還差得很遠。后來我又看到有人建議用location.replace從一個
頁面轉到另一個頁面。這種方法的原理是,用新頁面的URL替換當前的歷史紀錄,這樣瀏覽歷史記錄中就只有一個頁面,后
退按鈕永遠不會變為可用。我想這可能正是許多人所尋求的方法,但這種方法仍舊不是任何情況下的最好方法。使用這種
方法的實例如下所示: 
<A HREF="PageName.htm" onclick="javascript:location.replace(this.href); 
event.returnValue=false; "> 
禁止后退到本頁面的鏈接</A> 
   試試下面這個鏈接: 
   禁止后退到本頁面的鏈接! 
   這種方法的缺點在于:簡單地運用Response.Redirect將不再有效,這是因為每次用戶從一個頁面轉到另一個頁面,
我們都必須用客戶端代碼清除location.history。另外還要注意,這種方法清除的是最后一個訪問歷史記錄,而不是全部
的訪問記錄。 
   點擊上面的鏈接,你將打開一個簡單的HTML頁面。再點擊后退按鈕,你可以看到這時打開的不是本頁面,而是本頁面
之前的頁面!(當然,你必須在瀏覽器中啟用了客戶端JavaScript代碼。) 
   經過一番仔細的尋尋覓覓之后,我發現仍舊無法找出真正能夠完全禁用瀏覽器后退按鈕的辦法。所有這里介紹的方法
都能夠在不同程度上、以不同的方式禁止用戶返回前一頁面,但它們都有各自的局限。由于不存在能夠完全禁用后退按鈕
的方法,所以最好的方案應該是:混合運用客戶端腳本和服務器端腳本。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一夜七次郎国产精品亚洲| y97精品国产97久久久久久| 精品久久在线播放| 中文字幕一精品亚洲无线一区| 日韩高清电影免费观看完整版| 欧美性视频在线| 国产日韩欧美中文在线播放| 国产日韩欧美在线观看| 超碰精品一区二区三区乱码| 亚洲美女福利视频网站| 国产情人节一区| 日本电影亚洲天堂| 亚洲第一精品久久忘忧草社区| 国产精品久久9| 久久在线免费视频| 日韩在线观看免费| 亚洲999一在线观看www| 色噜噜国产精品视频一区二区| 国a精品视频大全| 久久艳片www.17c.com| 欧美在线精品免播放器视频| 久久久久这里只有精品| 国产精品一区二区三区久久| 欧美精品videosex极品1| 九九热在线精品视频| 亚洲一级免费视频| 国产综合福利在线| 久久久久久久一区二区三区| 日本免费在线精品| 精品女同一区二区三区在线播放| 成人在线观看视频网站| 欧美整片在线观看| 亚洲性猛交xxxxwww| 亚洲精品久久久久中文字幕欢迎你| 成人自拍性视频| 欧美电影免费观看高清完整| 久久久久久久久91| 国产欧美日韩丝袜精品一区| 午夜精品久久久久久久久久久久| www.亚洲成人| 国产精品欧美日韩| 美日韩在线视频| 久久人人97超碰精品888| 欧美高清理论片| 怡红院精品视频| 国产在线日韩在线| 黄色一区二区在线观看| 欧美大胆在线视频| 亚洲免费伊人电影在线观看av| 欧美日韩在线观看视频| 黄色精品在线看| 亚洲欧美日韩精品久久亚洲区| 欧美一级淫片videoshd| 亚洲成av人片在线观看香蕉| 成人疯狂猛交xxx| 韩国国内大量揄拍精品视频| 久久精品国产一区二区三区| 国内免费久久久久久久久久久| 中文字幕免费精品一区高清| 国产精品自产拍在线观看中文| 亚洲欧美日韩久久久久久| 久国内精品在线| 成人春色激情网| 欧美老女人在线视频| 亚洲国产福利在线| 亚洲第一区第二区| 国产精品欧美日韩久久| 欧美日韩国产在线看| 日韩精品在线免费观看视频| 一本色道久久综合亚洲精品小说| 国产精品久久久久久久美男| 在线亚洲欧美视频| 国产精品美女主播| 日本精品视频在线| 亚洲国产精品久久久久| 18一19gay欧美视频网站| 18性欧美xxxⅹ性满足| 亚洲国产精品久久| 福利二区91精品bt7086| 91精品视频在线播放| 日韩美女视频在线观看| 日韩av中文字幕在线| 亚洲免费伊人电影在线观看av| 日韩欧美精品网站| 日韩有码在线观看| 国产精品高潮呻吟久久av无限| 精品在线观看国产| 国产精品久久久久久婷婷天堂| 中文字幕一区电影| 国产亚洲精品一区二555| 日韩动漫免费观看电视剧高清| 懂色av影视一区二区三区| 亚洲精品一区久久久久久| 91精品国产91久久久久久久久| 91精品视频一区| 久久精品国产69国产精品亚洲| 91在线观看免费网站| 91爱视频在线| 综合国产在线视频| 久久久www成人免费精品张筱雨| 亚洲国产精品久久久久秋霞蜜臀| 久久伊人精品一区二区三区| 亚洲国产成人久久| 亚洲欧美综合图区| 亚洲人成电影在线| 久久久亚洲精品视频| 日韩电影在线观看中文字幕| 亚洲天堂第二页| 国内精品久久久久影院优| 亚洲第一中文字幕在线观看| 啊v视频在线一区二区三区| 久久中文字幕在线视频| 国产精品一区二区三| 欧美黑人性生活视频| 欧美在线观看一区二区三区| 久久久精品电影| 欧美放荡办公室videos4k| 91精品久久久久久久久不口人| 亚洲免费中文字幕| 欧美性极品少妇精品网站| 亚洲男人的天堂网站| 久久久久久久久久国产精品| 久久久久免费视频| 国产在线观看不卡| 久久国产精品首页| 欧美日韩国产精品| 91视频国产一区| 一区二区三区高清国产| 国产日产欧美精品| 最近日韩中文字幕中文| 欧美成人免费在线观看| 亚洲欧美另类在线观看| 国产美女精品免费电影| 亚洲香蕉伊综合在人在线视看| 国产成人精品最新| 久久91精品国产| 色诱女教师一区二区三区| 国产精品9999| 91精品视频在线| 91网站在线免费观看| 国产99久久精品一区二区 夜夜躁日日躁| 国产日韩欧美在线| 国产午夜精品理论片a级探花| 日韩大陆欧美高清视频区| 成人久久18免费网站图片| 亚洲视频777| 亚洲欧洲中文天堂| 91精品国产高清自在线看超| 日韩美女激情视频| 国产精品激情av在线播放| 亚洲欧洲偷拍精品| 成人午夜一级二级三级| 日韩在线观看免费网站| 国产精品在线看| 亚洲欧美综合图区| 国产精品久久久久久婷婷天堂| 国产精品国产自产拍高清av水多| 国产视频久久久久| 亚洲精品乱码久久久久久金桔影视| 欧美xxxx做受欧美.88| 国产精品福利在线观看网址| 精品亚洲一区二区三区四区五区| 欧美成人精品在线视频| 欧美日韩黄色大片|