今回は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 -> keypress -> textInput -> keyup 問題があります: 選択
ドロップダウン リストが展開された後、キーボード イベントを取得できません。この時点で Backspace キーを押すと、ブラウザは依然として履歴に戻ります。 解決策: 選択ドロップを変更します。 -down ボックスを easyUI のコンボボックスに変換しますあなたはこの記事を読んだと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
JS ホームページ ニュース スライド効果 JS クリックして循環して画像を再生に切り替えます以上がjsはブラウザバックイベントを禁止しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。