• 締切済み

Altを使ったショートカットキー無効の方法

いつもお世話になってます。 javascriptで、IEのショートカットキーのいくつかを無効にしているのですが、 Altと組み合わせて使うショートカットキーの無効化ができずに困ってます。 例えば、Ctrl+Iでお気に入りを開く処理の無効化はこう実現できました。 function keydown() { if(event.ctrlKey & event.keyCode == 73){ event.keyCode = 0; return false; } } document.onkeydown = keydown; ですが、Alt+Dでアドレスバー選択の無効化は以下では実現できませんでした。 function keydown() { if(event.altKey & event.keyCode == 68){ event.keyCode = 0; return false; } } document.onkeydown = keydown; どうすれば実現できるのか、教えてください。

みんなの回答

回答No.1
swallow10
質問者

補足

ご回答ありがとうございます。 いただいたパスで検索した結果は既に試し済みで、うまくいってなかったのですが、ブラウザのメニューバーを消したところ、(一部)実現できました。 ありがとうございました。

関連するQ&A

  • IE8におけるショートカットキーの無効化方法

    タイトルの通り、現在IE8環境で、ショートカットキーを無効にする方法を模索しています。 ネットで調べた結果、イベントを受け取ることまでは成功するのですが、 それを無効化することができません(一部のショートカットキー)。 現在試しているのが Ctrl++→拡大 Ctrl+-→縮小 の二つです。 htmlのバージョンは4.01 Strictを使用しています。 以下ソース window.document.attachEvent('onkeydown', onKeyEvent); window.document.attachEvent('onkeyup', onKeyEvent); function onKeyEvent(e){ if(!e) e = window.event; //確認用 //console.log("Key Code : " + e.keyCode); //console.log("Event Type : " + e.type); //console.log("Ctrl Key : " + e.ctrlKey); if(e.keyCode != 17){ if(e.ctrlKey){ switch(e.keyCode){ case 187: case 189: //e.keyCode = 0; e.returnValue = false; e.cancelBubble = true; //window.event = e; return false; } } } return true; } alert()をいれると無効化できるといった記述も見たのですが、 今回はその方法は使わずに実装する予定です。 どなたか方法をご存知でしたら、ご教授ください。 (コメントアウトしているものも試しましたが、うまくいきませんでした)

  • キーコードなどでAlt+○を認識してイベントを発生させるには?

    キーコードなどでAlt+○を認識してイベントを発生させるにはどうしたらよいのでしょうか?ひとつのキーでならできたのですが複数のキーを組み合わせることができませんでした。参考までにうまくいかなかったプログラムの関数部分を記述しておきます。このプログラムだと一回目はうまくいくのですが二回目になるとsキーを押すだけで実行されてしまいます。 document.onkeydown=keyDown; function keyDown() { keynum1=event.keyCode; if(keynum1==18)//この番号がキーに対応してる(Altキー) { document.onkeydown=pressEnter; } } function pressEnter() { keynum2=event.keyCode; if(keynum2==83)//この番号がキーに対応してる(sキー) { document.write("キーコード"); } }

  • ctrl+vを無効にする方法

    タイトルのとおりなのですが、 javascriptで、キー制御(今回は、ctrl+v)をしたいのですが、どうすればよいのでしょうか? ちょっと、調べてみたのですが、 if( ((event.ctrlKey == true) && (event.keyCode == 86))) { event.returnValue = false; return false; } で、できるようなのですが、どのイベントに書けばよいのでしょうか? onkeydownとonkeyupでやってみましたが、ダメでした。 宜しくお願いします。 環境:Win2k(SP4)+IE6(SP1)

  • 「Alt + ←」の機能(前のページに戻る)を抑止したい

    ◇環境 ブラウザ:Microsoft Internet Explorer 6.0 SP2 上記の環境で、「Alt + ←」の機能(前のページに戻る)をJavaScriptで抑止したいと考えています。サンプルとして、 window.document.onkeydown = altandArrowDisable(){  if(event.altKey && event.keyCode == 37) {   event.keyCode = 0;   return false;  }else{   return true;  } } と書いてみましたが機能(前のページに戻る)を抑止できません。 alert()を付加すると機能抑止できますが、それ以外で実現可能なのでしょうか? 宜しくお願い致します。

  • 一部のテキストだけのKEYCODEを有効にしたい

    四苦八苦している初心者です。よろしくお願いします。 バックスペースキーを以下のように無効にしています。 window.document.onkeydown = function () {if (event.keyCode == 8) {event.keyCode = null; return false;}} フォームに有効にしたいテキストが存在するのですが、どのようにしたら有効になりますでしょうか? <input type="text" name="set" size="60" value="ABC"> 全体にバックスペースを無効にし、一部だけ解除したいという内容です。よろしくお願いします。

  • ファンクションキー制御?

    こんにちわです。 タイトル通りなのですが、 JSでは、 function kdown(e) {var msg =""; var flg = 1; switch(window.event.srcElement.tagName){ case "INPUT" :if(event.srcElement.type != "text" && event.srcElement.type != "password" && event.keyCode!=9 && event.keyCode!=16 && event.keyCode!=32){return false;}else{flg=0;}break; case "TEXTAREA" :flg = 0;break; case "SELECT" :flg = 0;break; case "A" :flg = 2;break; } switch(event.keyCode){ case 8 :msg = "BS";break; case 78 :if(event.ctrlKey){msg = "Ctrl+N";}break; case 82 :if(event.ctrlKey){msg = "Ctrl+R";}break; case 116 :msg = "F5";break; case 122 :msg = "F11";break; } if(event.altKey){msg = "Alt";} if (flg == 0 ){switch(event.keyCode){case 8 :msg = "";break;case 13 :msg = "";break;}} else if (flg == 2 && event.keyCode==13)msg = ""; if(msg != ""){event.keyCode = 0;return false;}else{return true;} } document.onkeydown = kdown; こんな感じに制御するのを、 アクションスクリプトで制御出来ますか? HTMLにこのJS埋め込んでも、FLASHの所クリックして、 各キー押すと意味なくなってしまうので・・ F5やF11など使用されたくないのですが・・・ 入れ替えなどでも良いのですが。。。 宜しくお願いします。

  • Altキー+○キーでのショートカットの制御

    お世話になります。 papillon68と申します。 Windows 2000、XP IE6以降限定 ブラウザでAlt+○キーを押すことで様々な操作をキーボードのみで 行うことができます。 (参考:http://www.clubqa.com/weekly/qa020403.htm) 今回行いたいことはこのキーボードのみでの操作の 一部を制限したいというものです。 例えば、 ・Altキー+←キーで一つ履歴が戻ります。[history.back(-1)] ・Altキー+→キーで一つ履歴が進みます。[history.back(1)] これを制限するために ----------------------------------------- // Altキー+←キーの制限 if((event.altKey) && (event.keyCode==37)) { // チェック用 //alert('通った'); event.keyCode = 0; return false; } ----------------------------------------- としていますが、一つ前の画面に戻ってしまいます。 alert()を使って実際にif内を通っているかを チェックしてみると通っていないようです。 同じようにCtrlの場合だと同じ方法で制限することができました。 ----------------------------------------------- // 更新の制限(Ctrl+R) if((event.ctrlKey) && (event.keyCode==82)) { // チェック用 // alert('通った'); event.keyCode = 0; false; } ----------------------------------------------- こちらはアラートが表示され、ページが更新されません。 Altキーの場合もCtrlキーと同じように制限することはできないでしょうか。 お手数をお掛け致しますが、ご教授よろしくお願い致します。

  • 日本語入力の禁止

    お世話になります。 divにcontenteditable属性を付与して編集できるようにしました。 そのとき、日本語は入力禁止にしたいのですがime-modeはdivには使用できないみたいです。 日本語入力のときはkeycode229が返ってくるようなのでjavascriptでonkeydownのときに if (event.keyCode == 229) { return false; } というif文を入れてみました。alertとかで確認するとちゃんと日本語入力の時にはこのif文を通過しているみたいなのですが 日本語が入力されてしまいます。 div contenteditable=trueのときに日本語入力を禁止したい場合はどのようにすれば実現できるのでしょうか。 <div contenteditable=true onkeydown="return test();">編集テスト</div> function test() { if (event.keyCode == 229) { return false; } return true; } よろしくお願いします。

  • Enter キー 無効について

    こんにちは。 フォーム送信において、enter(return)キーを無効にするため、 下記のJavaScriptをネットで検索して利用しました。 function myEvent(aEvent){ var evt = aEvent ? aEvent : (event ? event : window.event); if(evt){ if(evt.keyCode == 13){ return false; } } } window.document.onkeydown = myEvent; しかし、これだとTEXTAREAの改行もできないので、 某サイトで見つけ、次のようにwindow.document....を書き換えました。 <form id='myForm' name='myForm'.....>.......</form> window.document.myForm.author.onkeydown = myEvent; window.document.myForm.kana.onkeydown = myEvent; window.document.myForm.sex.onkeydown = myEvent; window.document.myForm.age.onkeydown = myEvent; window.document.myForm.zip1.onkeydown = myEvent; window.document.myForm.zip2.onkeydown = myEvent; window.document.myForm.pref.onkeydown = myEvent; window.document.myForm.local1.onkeydown = myEvent; window.document.myForm.local2.onkeydown = myEvent; window.document.myForm.phone1.onkeydown = myEvent; window.document.myForm.phone2.onkeydown = myEvent; window.document.myForm.phone3.onkeydown = myEvent; window.document.myForm.fax1.onkeydown = myEvent; window.document.myForm.fax2.onkeydown = myEvent; window.document.myForm.fax3.onkeydown = myEvent; window.document.myForm.email.onkeydown = myEvent; window.document.myForm.subject.onkeydown = myEvent; window.document.myForm.captchaz.onkeydown = myEvent; //////////////// 結果的には、正常に動作します。 しかし、要素が2つ、3つなら気になりませんが、 ちょっとした「お問い合わせ]ページを作っても結構な数になります。 もっとシンプルなコードにならないでしょうか? どうか教えてください。お願いします。

  • return falseが効かない(F5キーの無効化)

    JavaScriptでF5キーの無効化をしています。 以下のソースで一応は実現できていますが、1台のマシンだけ 無効化されないものがあります。 =================== <html> <head> <title>F5キーを無効にする</title> <script language="JavaScript"> <!-- window.document.onkeydown = function () { if (event.keyCode == 116) { alert("来た"); event.keyCode = null; return false; alert("来てない"); } } //--> </script> </head> <body> </body> </html> =============== 該当のマシンでF5キーを押すと「来てない」のアラートは出ない のですが、再読み込みがされてしまいます。他の端末では 再読み込みはされません。 以下のようなサイトでJavaScriptのバージョン差異を確認しましたが 再読み込みがされる/されない端末では全て一致しました。 http://diaspar.jp/node/49 「インターネットオプション」-「セキュリティの設定」に ついても差異が見られませんでした。 OSはWindowsXpSP2 ブラウザはIE6.0SP2です。 何故このような動作の違いが発生するのか、御分かりになられる方 どなたか教えて下さい。宜しくお願いします。

専門家に質問してみよう