ホームページ  >  記事  >  ウェブフロントエンド  >  Backspace キーを無効にしてブラウザを戻るようにする js を実装する

Backspace キーを無効にしてブラウザを戻るようにする js を実装する

巴扎黑
巴扎黑オリジナル
2017-09-02 14:04:402237ブラウズ

次のエディターは、Backspace キーを無効にしてブラウザーを元に戻すための JS メソッドを提供します。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。エディターをフォローして見てみましょう

プロジェクト中に Backspace キーを押してブラウザを戻すという問題に遭遇しましたが、オンラインでいくつかの解決策を検索しましたが、どれも理想的なものではありませんでした。そこで、皆さんの知恵を集め、皆さんの長所を学び、次のようにまとめました:

1. public 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 ->textInput -> 問題:選択ドロップダウン リストを展開した後、この時点で Backspace キーを押すと、ブラウザは依然として履歴に戻ります。解決策: 選択ドロップダウン ボックスを easyUI のコンボボックスに変更します。

以上がBackspace キーを無効にしてブラウザを戻るようにする js を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。