javascript怎么禁用瀏覽器后退按鈕
更新時(shí)間:2014年03月27日 16:35:27 作者:
這篇文章主要介紹了javascript禁用瀏覽器后退按鈕的具體實(shí)現(xiàn),有需要的朋友可以參考下
1、
<script language="JavaScript">
javascript:window.history.forward(1);
</script>
利用JS產(chǎn)生一個(gè)“前進(jìn)”的動(dòng)作,以抵消后退功能,這種方法應(yīng)該是最簡(jiǎn)潔的,并且不需要考慮用戶連點(diǎn)兩次或多次“后退”的情況,缺點(diǎn)是當(dāng)用戶端禁用了JavaScript之后即失效。
2、
<A HREF="logout.do" onclick="javascript:location.replace(this.href); event.returnValue=false; ">
Logout (Back Disabled)
</A>
用location.replace從一個(gè)頁(yè)面轉(zhuǎn)到另一個(gè)頁(yè)面。這種方法的原理是,用新頁(yè)面的URL替換當(dāng)前的歷史紀(jì)錄,這樣瀏覽歷史記錄中就只有一個(gè)頁(yè)面,后退按鈕永遠(yuǎn)不會(huì)變?yōu)榭捎?。我想這可能正是許多人所尋求的方法,但這種方法仍舊不是任何情況下的最好方法。這種方法的缺點(diǎn)在于:簡(jiǎn)單地運(yùn)用Response.Redirect將不再有效,這是因?yàn)槊看斡脩魪囊粋€(gè)頁(yè)面轉(zhuǎn)到另一個(gè)頁(yè)面,我們都必須用客戶端代碼清除location.history。另外還要注意,這種方法清除的是最后一個(gè)訪問歷史記錄,而不是全部的訪問記錄。
3、
當(dāng)鍵盤敲下后退鍵(Backspace)后
1、禁止瀏覽器自動(dòng)后退
2、但不影響密碼、單行文本、多行文本輸入框等的回退操作
<script type="text/javascript">
//處理鍵盤事件 禁止后退鍵(Backspace)密碼或單行、多行文本框除外
function banBackSpace(e){
var ev = e || window.event;//獲取event對(duì)象
var obj = ev.target || ev.srcElement;//獲取事件源
var t = obj.type || obj.getAttribute('type');//獲取事件源類型
//獲取作為判斷條件的事件類型
var vReadOnly = obj.getAttribute('readonly');
var vEnabled = obj.getAttribute('enabled');
//處理null值情況
vReadOnly = (vReadOnly == null) ? false : vReadOnly;
vEnabled = (vEnabled == null) ? true : vEnabled;
//當(dāng)敲Backspace鍵時(shí),事件源類型為密碼或單行、多行文本的,
//并且readonly屬性為true或enabled屬性為false的,則退格鍵失效
var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea")
&& (vReadOnly==true || vEnabled!=true))?true:false;
//當(dāng)敲Backspace鍵時(shí),事件源類型非密碼或單行、多行文本的,則退格鍵失效
var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")
?true:false;
//判斷
if(flag2){
return false;
}
if(flag1){
return false;
}
}
//禁止后退鍵 作用于Firefox、Opera
document.onkeypress=banBackSpace;
//禁止后退鍵 作用于IE、Chrome
document.onkeydown=banBackSpace;
</script>
以上方法都是針對(duì)“后退”按鈕作出的反應(yīng),客戶端瀏覽器需要打開JavaScript代碼。
4、禁止緩存
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
%>
這種方法使用服務(wù)器端腳本,強(qiáng)制瀏覽器重新訪問服務(wù)器下載頁(yè)面,而不從緩存讀取,結(jié)合struts jsp頁(yè)面中的<logic>標(biāo)簽實(shí)現(xiàn)重新定向。
以上各種方法都有一定的局限
5、
<script language="JavaScript">
function logout(){
window.close(true);
window.open("logout.do");
}
</script>
<button onClick="logout()">Logout</button>
這種方法比較偷懶,關(guān)掉瀏覽器再重新開,經(jīng)過我的測(cè)試在視覺上幾乎感覺不出來(lái)延時(shí),同時(shí)又保證了后退按鈕不可用(新窗口瀏覽器后退按鈕為灰色),看起來(lái)似乎是個(gè)好方法,但缺點(diǎn)也比較明顯:
首先,關(guān)閉和重開的瀏覽器窗口大小可能不同,用戶可以明顯看出這一過程,并且在一定程度上影響操作。
其次,同上,這是一個(gè)JavaScript方法。
復(fù)制代碼 代碼如下:
<script language="JavaScript">
javascript:window.history.forward(1);
</script>
利用JS產(chǎn)生一個(gè)“前進(jìn)”的動(dòng)作,以抵消后退功能,這種方法應(yīng)該是最簡(jiǎn)潔的,并且不需要考慮用戶連點(diǎn)兩次或多次“后退”的情況,缺點(diǎn)是當(dāng)用戶端禁用了JavaScript之后即失效。
2、
復(fù)制代碼 代碼如下:
<A HREF="logout.do" onclick="javascript:location.replace(this.href); event.returnValue=false; ">
Logout (Back Disabled)
</A>
用location.replace從一個(gè)頁(yè)面轉(zhuǎn)到另一個(gè)頁(yè)面。這種方法的原理是,用新頁(yè)面的URL替換當(dāng)前的歷史紀(jì)錄,這樣瀏覽歷史記錄中就只有一個(gè)頁(yè)面,后退按鈕永遠(yuǎn)不會(huì)變?yōu)榭捎?。我想這可能正是許多人所尋求的方法,但這種方法仍舊不是任何情況下的最好方法。這種方法的缺點(diǎn)在于:簡(jiǎn)單地運(yùn)用Response.Redirect將不再有效,這是因?yàn)槊看斡脩魪囊粋€(gè)頁(yè)面轉(zhuǎn)到另一個(gè)頁(yè)面,我們都必須用客戶端代碼清除location.history。另外還要注意,這種方法清除的是最后一個(gè)訪問歷史記錄,而不是全部的訪問記錄。
3、
當(dāng)鍵盤敲下后退鍵(Backspace)后
1、禁止瀏覽器自動(dòng)后退
2、但不影響密碼、單行文本、多行文本輸入框等的回退操作
復(fù)制代碼 代碼如下:
<script type="text/javascript">
//處理鍵盤事件 禁止后退鍵(Backspace)密碼或單行、多行文本框除外
function banBackSpace(e){
var ev = e || window.event;//獲取event對(duì)象
var obj = ev.target || ev.srcElement;//獲取事件源
var t = obj.type || obj.getAttribute('type');//獲取事件源類型
//獲取作為判斷條件的事件類型
var vReadOnly = obj.getAttribute('readonly');
var vEnabled = obj.getAttribute('enabled');
//處理null值情況
vReadOnly = (vReadOnly == null) ? false : vReadOnly;
vEnabled = (vEnabled == null) ? true : vEnabled;
//當(dāng)敲Backspace鍵時(shí),事件源類型為密碼或單行、多行文本的,
//并且readonly屬性為true或enabled屬性為false的,則退格鍵失效
var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea")
&& (vReadOnly==true || vEnabled!=true))?true:false;
//當(dāng)敲Backspace鍵時(shí),事件源類型非密碼或單行、多行文本的,則退格鍵失效
var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")
?true:false;
//判斷
if(flag2){
return false;
}
if(flag1){
return false;
}
}
//禁止后退鍵 作用于Firefox、Opera
document.onkeypress=banBackSpace;
//禁止后退鍵 作用于IE、Chrome
document.onkeydown=banBackSpace;
</script>
以上方法都是針對(duì)“后退”按鈕作出的反應(yīng),客戶端瀏覽器需要打開JavaScript代碼。
4、禁止緩存
復(fù)制代碼 代碼如下:
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
%>
這種方法使用服務(wù)器端腳本,強(qiáng)制瀏覽器重新訪問服務(wù)器下載頁(yè)面,而不從緩存讀取,結(jié)合struts jsp頁(yè)面中的<logic>標(biāo)簽實(shí)現(xiàn)重新定向。
以上各種方法都有一定的局限
5、
復(fù)制代碼 代碼如下:
<script language="JavaScript">
function logout(){
window.close(true);
window.open("logout.do");
}
</script>
<button onClick="logout()">Logout</button>
這種方法比較偷懶,關(guān)掉瀏覽器再重新開,經(jīng)過我的測(cè)試在視覺上幾乎感覺不出來(lái)延時(shí),同時(shí)又保證了后退按鈕不可用(新窗口瀏覽器后退按鈕為灰色),看起來(lái)似乎是個(gè)好方法,但缺點(diǎn)也比較明顯:
首先,關(guān)閉和重開的瀏覽器窗口大小可能不同,用戶可以明顯看出這一過程,并且在一定程度上影響操作。
其次,同上,這是一個(gè)JavaScript方法。
相關(guān)文章
javascript單頁(yè)面手勢(shì)滑屏切換原理詳解
這篇文章主要為大家詳細(xì)介紹了javascript單頁(yè)面手勢(shì)滑屏切換原理,感興趣的小伙伴們可以參考一下2016-03-03Openlayers實(shí)現(xiàn)角度測(cè)量的方法
在Openlayers中,雖然沒有直接的角度測(cè)量API,但可以通過自定義方法實(shí)現(xiàn),首先,選取三個(gè)頂點(diǎn),利用這些點(diǎn)的坐標(biāo)計(jì)算夾角度數(shù),接著,用SVG或canvas繪制代表角度的圓弧,并通過Overlay添加到地圖上,本文給大家介紹Openlayers實(shí)現(xiàn)角度測(cè)量的方法,感興趣的朋友一起看看吧2024-11-11JavaScript 組件之旅(二)編碼實(shí)現(xiàn)和算法
話說(shuō)上期我們討論了隊(duì)列管理組件的設(shè)計(jì),并且給它取了個(gè)響亮而獨(dú)特的名字:Smart Queue. 這次,我們要將之前的設(shè)計(jì)成果付諸實(shí)踐,用代碼來(lái)實(shí)現(xiàn)它。2009-10-10javascript獲取URL參數(shù)與參數(shù)值的示例代碼
本篇文章主要是對(duì)javascript獲取URL參數(shù)與參數(shù)值的示例代碼進(jìn)行了介紹,需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助2013-12-12Bootstrap每天必學(xué)之折疊(Collapse)插件
Bootstrap每天必學(xué)之折疊(Collapse)插件,折疊插件可以很容易地讓頁(yè)面區(qū)域折疊起來(lái),感興趣的小伙伴們可以參考一下2016-04-04使用遞歸遍歷對(duì)象獲得value值的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇使用遞歸遍歷對(duì)象獲得value值的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-06-06微信小程序?qū)W習(xí)筆記之獲取位置信息操作圖文詳解
這篇文章主要介紹了微信小程序?qū)W習(xí)筆記之獲取位置信息操作,結(jié)合實(shí)例形式分析了微信小程序獲取位置信息的原理、步驟及相關(guān)操作注意事項(xiàng),并結(jié)合圖文形式予以說(shuō)明,需要的朋友可以參考下2019-03-03