JS禁止瀏覽器後退鍵
背景說明:
今天專案測試中,同事發現一個Bug,當鍵盤敲下後退鍵(Backspace)後,瀏覽器自動後退,不符合需求,故建議禁止瀏覽器後退鍵。
提出需求:
當鍵盤敲下後退鍵(Backspace)後
1、禁止瀏覽器自動後退
2、但不影響密碼、單行文字、多行文字輸入框等的回退操作
解決方案:
網上搜了一下,發現有不少解決方案,相比較之下,zywang的方案較佳,(原文見http://zywang.iteye.com/blog/700263)
在其基礎上,進行補充和完善,以滿足需求,整理後的程式碼如下:
<script type="text/javascript">
//處理鍵盤事件 禁止後退鍵(Backspace)密碼或單行、多行文字框除外
function banBackSpace(e){
var ev = e || window.event;//獲取event物件
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;
//當敲Backspace鍵時,事件源型別為密碼或單行、多行文字的,
//並且readonly屬性為true或enabled屬性為false的,則退格鍵失效
var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea")
&& (vReadOnly==true || vEnabled!=true))?true:false;
//當敲Backspace鍵時,事件源型別非密碼或單行、多行文字的,則退格鍵失效
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>
轉帖於: http://volunteer521.iteye.com/blog/830522
相關文章
- 禁止頁面後退JS(相容各瀏覽器)JS瀏覽器
- js 禁用瀏覽器後退按鈕效果JS瀏覽器
- 監聽瀏覽器的後退事件瀏覽器事件
- history pushState 實現瀏覽器前進與後退瀏覽器
- [html]history禁用瀏覽器的後退功能(包括其他操作後退的按鈕,操作等)HTML瀏覽器
- 點選瀏覽器後退按鈕時彈出提示資訊瀏覽器
- 瀏覽器“後退”、“前進”或可以這麼去監聽瀏覽器
- ASP.Net頁面瀏覽器“後退”功能的實現ASP.NET瀏覽器
- 瀏覽器後退操作時,表單狀態的還原瀏覽器
- chrome禁用js怎麼設定 如何禁止chrome瀏覽器JavaScriptChromeJS瀏覽器JavaScript
- JavaScript禁止瀏覽器預設行為JavaScript瀏覽器
- win10系統瀏覽器閃退怎麼辦 win10瀏覽器閃退的方法Win10瀏覽器
- 微信瀏覽器內禁止頁面回退返回瀏覽器
- 為什麼win10瀏覽器總是閃退_win10瀏覽器閃退是怎麼回事Win10瀏覽器
- 08-棧:如何實現瀏覽器的前進和後退功能?瀏覽器
- Microsoft Edge瀏覽器快捷鍵ROS瀏覽器
- js修改瀏覽器urlJS瀏覽器
- Ios、Android微信瀏覽器後退跳轉實現,及遇到的bugiOSAndroid瀏覽器
- 相容所有瀏覽器的js滑鼠中鍵滾動事件瀏覽器JS事件
- 禁止瀏覽器快取當前文件內容瀏覽器快取
- js檢測搜狗瀏覽器、百度瀏覽器、微信瀏覽器程式碼例項JS瀏覽器
- Win10系統ie瀏覽器閃退該怎麼辦 Win10系統ie瀏覽器閃退的方法Win10瀏覽器
- 工具篇---Chrome瀏覽器快捷鍵Chrome瀏覽器
- 谷歌(chrome)瀏覽器快捷鍵大全谷歌Chrome瀏覽器
- Mac 下 Chrome 瀏覽器 快捷鍵MacChrome瀏覽器
- 360瀏覽器廣告彈窗怎麼關閉 360瀏覽器怎麼禁止廣告彈出瀏覽器
- js 判斷是什麼瀏覽器、是否為谷歌瀏覽器JS瀏覽器谷歌
- js如何判斷當前瀏覽器是否是谷歌瀏覽器JS瀏覽器谷歌
- js 獲取瀏覽器核心JS瀏覽器
- win10 edge瀏覽器快捷鍵是什麼 win10 edge瀏覽器快捷鍵如何操作Win10瀏覽器
- 瀏覽器/nodeJS中的EventLoop瀏覽器NodeJSOOP
- js程式碼判斷瀏覽器JS瀏覽器
- JS實現瀏覽器列印WordJS瀏覽器
- 主流瀏覽器核心及JS引擎瀏覽器JS
- js獲取ip,瀏覽器資訊JS瀏覽器
- js 呼叫瀏覽器複製功能JS瀏覽器
- ie瀏覽器退役後還能用嗎 ie瀏覽器關閉停用以後怎麼辦瀏覽器
- 監控頁面後退前進,瀏覽器文件載入事件之pageshow、pagehide瀏覽器事件IDE