首頁 >web前端 >js教程 >js禁止瀏覽器後退事件

js禁止瀏覽器後退事件

php中世界最好的语言
php中世界最好的语言原創
2018-04-18 14:56:022305瀏覽

這次帶給大家js禁止瀏覽器後退事件,js禁止瀏覽器後退事件的注意事項有哪些,下面就是實戰案例,一起來看一下。

在專案中遇到按下Backspace鍵讓瀏覽器後退的問題,上網搜了幾種解決方案都不太理想。於是集眾人之智,採眾家之長,歸納如下:

# 1.在公用js中定義阻止Backspace的方法

function banBackSpace(e){
 var ev = e || window.event;
 //各种浏览器下获取事件对象
 var obj = ev.relatedTarget || ev.srcElement || ev.target ||ev.currentTarget;
 //按下Backspace键
 if(ev.keyCode == 8){
 var tagName = obj.nodeName //标签名称
 //如果标签不是input或者textarea则阻止Backspace
 if(tagName!='INPUT' && tagName!='TEXTAREA'){
  return stopIt(ev);
 }
 var tagType = obj.type.toUpperCase();//标签类型
 //input标签除了下面几种类型,全部阻止Backspace
 if(tagName=='INPUT' && (tagType!='TEXT' && tagType!='TEXTAREA' && tagType!='PASSWORD')){
  return stopIt(ev);
 }
 //input或者textarea输入框如果不可编辑则阻止Backspace
 if((tagName=='INPUT' || tagName=='TEXTAREA') && (obj.readOnly==true || obj.disabled ==true)){
  return stopIt(ev);
 }
 }
}
function stopIt(ev){
 if(ev.preventDefault ){
 //preventDefault()方法阻止元素发生默认的行为
 ev.preventDefault();
 }
 if(ev.returnValue){
 //IE浏览器下用window.event.returnValue = false;实现阻止元素发生默认的行为
 ev.returnValue = false;
 }
 return false;
}

# 方法註解寫的很清楚了,這裡不過度解釋。

2.頁面載入完成就呼叫該方法

$(function(){
 //实现对字符码的截获,keypress中屏蔽了这些功能按键
 document.onkeypress = banBackSpace;
 //对功能按键的获取
 document.onkeydown = banBackSpace;
 })

註: 按鍵事件觸發順序: keydown -> keypress ->textInput -> keyup

# 存在問題:select下拉清單展開後,無法取得鍵盤事件,此時​​按Backspace鍵,瀏覽器還是會回退到歷史;解決方法:將select下拉方塊改為easyUI的combobox;

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

JS首頁新聞滑動效果

#JS點擊循環切換播放圖片

以上是js禁止瀏覽器後退事件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn