>  기사  >  웹 프론트엔드  >  js는 브라우저 뒤로 이벤트를 금지합니다.

js는 브라우저 뒤로 이벤트를 금지합니다.

php中世界最好的语言
php中世界最好的语言원래의
2018-04-18 14:56:022215검색

이번에는 브라우저 뒤로 이벤트를 비활성화하는 js를 소개하겠습니다. js가 브라우저 뒤로 이벤트를 비활성화하는 데 필요한 주의 사항은 무엇입니까? 다음은 실제 사례입니다.

프로젝트에서 브라우저를 다시 돌아가게 하기 위해 백스페이스 키를 눌러야 하는 문제에 직면했습니다. 인터넷에서 여러 솔루션을 검색했지만 그 중 어느 것도 이상적이지 않았습니다. 그래서 우리는 모두의 지혜를 모아 여러 가족의 장점을 채택하여 다음과 같이 요약했습니다.

1. 공개 js

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 -> 문제가 있습니다. 선택

드롭다운 목록

을 확장한 후 키보드 이벤트를 가져올 수 없습니다. 이때 백스페이스 키를 누르면 브라우저가 여전히 기록으로 돌아갑니다. 해결 방법: 선택 드롭을 변경하세요. -down box to easyUI의 콤보박스; 이 글을 읽으셨을 것입니다. 더 흥미로운 정보를 얻으려면 PHP 중국어 웹사이트의 다른 관련 글을 읽어보세요!

추천 도서:

JS 홈페이지 뉴스 슬라이딩 효과


JS 클릭하여 재생 사진으로 전환


위 내용은 js는 브라우저 뒤로 이벤트를 금지합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.