Maison  >  Article  >  interface Web  >  Implémentez js pour désactiver la touche Retour arrière afin de faire revenir le navigateur en arrière

Implémentez js pour désactiver la touche Retour arrière afin de faire revenir le navigateur en arrière

巴扎黑
巴扎黑original
2017-09-02 14:04:402237parcourir

L'éditeur suivant vous apportera une méthode d'implémentation pour désactiver la touche Retour arrière pour faire revenir le navigateur en js. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'œil.

J'ai rencontré le problème d'appuyer sur la touche Retour arrière pour faire revenir le navigateur en arrière pendant le projet. J'ai cherché plusieurs solutions sur Internet, mais aucune n'était idéale. Nous avons donc rassemblé la sagesse de chacun et adopté les points forts de chacun, et l'avons résumé comme suit :

1 Définir la méthode pour empêcher le retour arrière dans public 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;
}

Les commentaires de la méthode sont écrits très clairement, je n'expliquerai donc pas trop ici.

2. Appelez cette méthode une fois la page chargée


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

Remarque : Séquence de déclenchement d'un événement clé : keydown -> keypress ->textInput -> keyup

Il y a un problème : une fois la liste déroulante de sélection développée, le l'événement clavier ne peut pas être obtenu. À ce moment, appuyez sur la touche Retour arrière, le navigateur reviendra toujours à l'historique : remplacez la liste déroulante de sélection par la liste déroulante d'easyUI

 ;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn