ホームページ  >  記事  >  ウェブフロントエンド  >  jsはブラウザバックイベントを禁止します

jsはブラウザバックイベントを禁止します

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-18 14:56:022214ブラウズ

今回は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 サイトの他の関連記事を参照してください。

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