ホームページ >ウェブフロントエンド >jsチュートリアル >jsはブラウザバックイベントを禁止します
今回は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 サイトの他の関連記事を参照してください。