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

首頁 > 開發 > 綜合 > 正文

如何禁止瀏覽器使用后退按鈕功能

2024-07-21 02:02:38
字體:
來源:轉載
供稿:網友

本文介紹可找到的各種禁用瀏覽器后退按鈕方案,分析它們各自的優缺點和適用場合。

一、概述
   曾經有許多人問起,“怎樣才能‘禁用'瀏覽器的后退按鈕?”,或者“怎樣才能防止用戶點擊后退按鈕返回以前瀏覽過的頁面?”在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頁面。再點擊后退按鈕,你可以看到這時打開的不是本頁面,而是本頁面之前的頁面?。ó斎唬惚仨氃跒g覽器中啟用了客戶端JavaScript代碼。)
  
       經過一番仔細的尋尋覓覓之后,我發現仍舊無法找出真正能夠完全禁用瀏覽器后退按鈕的辦法。所有這里介紹的方法都能夠在不同程度上、以不同的方式禁止用戶返回前一頁面,但它們都有各自的局限。由于不存在能夠完全禁用后退按鈕的方法,所以最好的方案應該是:混合運用客戶端腳本和服務器端腳本。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久av大片| 日韩在线视频二区| 日韩在线视频免费观看高清中文| 亚洲欧美福利视频| 97视频在线观看视频免费视频| 日韩免费不卡av| 国产+成+人+亚洲欧洲| 中文字幕国产精品| 国产一区视频在线播放| 欧美黑人性生活视频| 久久九九免费视频| 一本色道久久88综合日韩精品| 成人午夜一级二级三级| 超碰日本道色综合久久综合| 美女黄色丝袜一区| 草民午夜欧美限制a级福利片| 欧美精品一二区| 国产91在线播放| 91av网站在线播放| 国产亚洲精品美女| 国产69精品久久久久久| 国产精品美女免费视频| 欧美电影免费看| 亚洲国产精品99| 亚洲精品久久久一区二区三区| 92看片淫黄大片欧美看国产片| 久久精品国产一区| 久久久久久国产三级电影| 国产成人啪精品视频免费网| 日本欧美黄网站| 欧美精品一二区| 亚洲欧美日韩国产中文专区| 欧美激情久久久久| 久久91精品国产| 亚洲欧美日韩在线一区| 亚洲综合av影视| 欧美成人四级hd版| 日韩av在线最新| 日韩精品中文字幕在线| 国产精品久久电影观看| 亚洲影影院av| 在线视频免费一区二区| 久久精品夜夜夜夜夜久久| 国产精品都在这里| 91av在线免费观看| 欧美精品video| 久久全国免费视频| 中文字幕久精品免费视频| 欧美黄色片视频| 久久久久久尹人网香蕉| 日韩欧美在线观看视频| 26uuu另类亚洲欧美日本老年| 日韩在线免费观看视频| 亚洲欧美福利视频| 久久九九热免费视频| 2019中文字幕在线| 久久九九全国免费精品观看| 欧美性猛交xxxx富婆| 日韩av片免费在线观看| 中文字幕在线观看日韩| 一本一道久久a久久精品逆3p| 国外成人免费在线播放| 中文字幕亚洲一区在线观看| 成人午夜一级二级三级| 2024亚洲男人天堂| 日韩一区二区精品视频| 亚洲精品国产精品久久清纯直播| 国产亚洲精品va在线观看| 中文字幕日韩精品在线观看| 欧美亚州一区二区三区| 日韩欧美在线字幕| 88国产精品欧美一区二区三区| 久久免费国产精品1| 欧美体内谢she精2性欧美| 国产欧美精品一区二区三区-老狼| 2019中文在线观看| 亚洲高清福利视频| 米奇精品一区二区三区在线观看| 欧美一区二区三区艳史| 久久在线观看视频| 亚洲欧洲午夜一线一品| 国产精品视频网址| 久久99精品久久久久久噜噜| 成年无码av片在线| 色婷婷综合成人av| 精品自在线视频| 午夜精品久久久久久久99热| 日韩国产高清污视频在线观看| 久久久久免费视频| 亚洲区bt下载| 欧美理论电影在线观看| 性欧美长视频免费观看不卡| 色婷婷综合久久久久中文字幕1| 日韩免费精品视频| 国产啪精品视频| 日韩精品欧美国产精品忘忧草| 午夜伦理精品一区| 在线视频一区二区| 亚洲欧美制服另类日韩| www.日韩免费| 伊人男人综合视频网| 国产91av在线| 亚洲免费视频网站| 欧美在线视频观看免费网站| 日韩在线观看免费全| 亚洲自拍av在线| 亚洲欧美在线播放| 国产不卡精品视男人的天堂| 久久在线视频在线| 奇米影视亚洲狠狠色| 亚洲午夜精品久久久久久久久久久久| 欧美性猛交99久久久久99按摩| 久久精品国产免费观看| 日韩av在线网站| 亚洲精品福利资源站| 日韩中文字幕在线看| 色中色综合影院手机版在线观看| 成人黄色大片在线免费观看| 午夜精品在线视频| 欧美午夜视频一区二区| 在线精品视频视频中文字幕| 国产日韩欧美在线播放| 亚洲日韩第一页| 国产午夜精品全部视频在线播放| 亚洲午夜精品久久久久久性色| 国产精品香蕉在线观看| www.精品av.com| 亚洲精品电影网在线观看| 91成人在线视频| 久久久久久久久网站| 97涩涩爰在线观看亚洲| 欧美性猛交xxxxx免费看| 日韩av中文字幕在线免费观看| 国产精品免费一区二区三区都可以| 日韩精品中文字幕视频在线| 久久久久久成人精品| 国产精品91久久| 欧美日韩性视频| www.久久撸.com| 国产日韩欧美在线看| 中文字幕亚洲自拍| 欧美精品18videos性欧| 久久久久久尹人网香蕉| 国产91色在线|免| 热久久这里只有精品| 日韩高清免费观看| 欧美福利视频在线观看| 亚洲免费电影一区| 国产精品永久免费观看| 午夜欧美大片免费观看| 久久精品亚洲94久久精品| 日韩av资源在线播放| 综合网日日天干夜夜久久| 欧美日韩第一页| 欧美激情网友自拍| 国产精品久久久久久久久久久不卡| 68精品久久久久久欧美| 精品av在线播放| 亚洲男人天堂九九视频| 992tv在线成人免费观看| 91精品国产777在线观看| 亚洲高清色综合| 亚洲国产精品va在线看黑人动漫| www国产亚洲精品久久网站|