• ベストアンサー

ctrl+vを無効にする方法

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

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

document.onkeydown = function(e){ var KEY_V = 56; var KEY_v = 86; e = (e)? e : window.event; if(e.ctrlKey && (e.keyCode==KEY_V || e.keyCode==KEY_v)){ return false; } }; でどうですか?

その他の回答 (1)

回答No.1

w0a15455さん、こんにちは。 以前私も同じような処理をしました。 私はkeydownのイベントで実装できました。 実際にw0a15455さんがどのようにスクリプトを 組まれたのかが分からないので、どこにミスがあるのかは 指摘できません。 こちらの過去記事が参考になるかもしれません。 http://bicniws.okwave.jp/kotaeru.php3?q=2040477

関連する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を使ったショートカットキー無効の方法

    いつもお世話になってます。 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; どうすれば実現できるのか、教えてください。

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

    こんにちわです。 タイトル通りなのですが、 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など使用されたくないのですが・・・ 入れ替えなどでも良いのですが。。。 宜しくお願いします。

  • 日本語入力の禁止

    お世話になります。 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; } よろしくお願いします。

  • Tabキーのキャンセル

    かなり短期間にこちらでいくつも質問して しまっていて申し訳ないのですが、 どうにも他で回答を調べられず…(<力不足) と言う訳で、しつこく 「IEだけでなくNetscape6以降でも動かしたい」 処理についてお聞きいたします。 IEでは上手く動いてますが、Netscape6以降でTabのキャンセルは指定できるのでしょうか? ちなみに↓のNetscape用関数は動きません(……。) 必要そうな所だけ書き出します↓ function document_onLoad() {  // IE 4以降の場合  if (isIE)  {   // 各種イベントハンドラーの初期化   document.onkeydown = document_onKeyDownIE;  }  // N6,7の場合  if (isN6)  {   window.onkeydown = document_onKeyDownN6;  } } /// tabキーが入力されたときのイベント処理(IE用) function document_onKeyDownIE() {  // TABキー  if (event.keyCode == 9)  {   // 本来のtabの処理をキャンセルする。   event.returnValue = false;  }  return; } /// tabキーが入力されたときのイベント処理(NN用) function document_onKeyDownN6(evt) {  var keyCode = evt.which;  if (keyCode == 9)  {   // 本来のtabの処理をキャンセルする。   evt.returnValue = false;   evt.cancelBubble = true;  }  return; }

  • 「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()を付加すると機能抑止できますが、それ以外で実現可能なのでしょうか? 宜しくお願い致します。

  • テキストフィールドに半角数値以外入力させない方法…。

    お世話になります! JavaScriptで、 function checkNum() {  c = String.fromCharCode(event.keyCode);  if ("0123456789".indexOf(c,0) < 0) alert("数値以外入力できません"); } と記述し、実行してみたのですが確かに数値以外は入力できないのですが BackSpaceやEnterキー、Tabキーを押した時にもアラートが発生します…。 本を見て、 function checkNum() {  c = String.fromCharCode(event.keyCode);  if ("0123456789".indexOf(c,0) < 0) return false; return true; } と記述すると、フォーム自体に半角数字しか入力できなくなると書いてあったのですが 実行しても普通に全角入力できました…。(泣) 何か方法ありますか?ご存知の方、宜しくご教授願います★ ちなみに、勿論<input>部分にonKeyDown="***()"の記述はしてますし JavaScriptが有効な状態での実行です。

  • キーボードショートカットでthickboxなどを起動したいのですが・・・・

    よろしくお願いいたします。 Webアプリのデザインを作成中なのですが、 javascriptでキーボードのショートカットキーを押してログイン画面を出したいと思い、できれば特定のキーを押したときにthickboxやlightboxでHTMLを表示できないかなと思っているのですが可能でしょうか? 以下のソースで一応Fキーを押すとリンクだけはできるのですが、 thickboxを定義するとなるとclassnameをどのように定義すればよいのでしょうか。 あまりJSの知識がないので、ご助力いただければ幸いです。 どうぞよろしくお願いいたします。 function shouldIgnoreInput(e) { var el = e.target || e.srcElement return el && el.tagName && (el.tagName.toUpperCase() == "INPUT" || el.tagName.toUpperCase() == "SELECT" || el.tagName.toUpperCase() == "TEXTAREA"); } function hotkey(e) { var nav4 = window.Event ? true : false; if(shouldIgnoreInput(e)) { return true; } if ((typeof e.ctrlKey != 'undefined') ? e.ctrlKey : e.modifiers & Event.CONTROL_MASK > 0) { return true; } if ((typeof e.altKey != 'undefined') ? e.altKey : e.modifiers & Event.ALT_MASK > 0) { return true; } if ((typeof e.metaKey != 'undefined') && e.metaKey) { return true; } else if((typeof Event != 'undefined') && (e.modifiers & Event.META_MASK > 0)) { return true; } if (nav4) var whichCode = e.which else if (e.type == "keypress") var whichCode = e.keyCode else var whichCode = e.button; if( whichCode == 114) { cancelEvent(e); window.location.reload(); return false; } else if( whichCode == 102 ) { cancelEvent(e); url = "login.html"; window.location.href = url; return false; } return true; } function cancelEvent(event) { if (event.preventDefault) { event.preventDefault(); event.stopPropagation(); } else { event.returnValue = false; } }

  • 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キーと同じように制限することはできないでしょうか。 お手数をお掛け致しますが、ご教授よろしくお願い致します。

  • テキストエリアに入力可能な文字を半角数字に制限する方法を教えて下さい。

    テキストフィールドに入力可能な文字を javascriptにより、 半角数字・左右のカーソルキー・バックスペースキー・デリートキー のみに限定しようと試みています。 半角数字は、メインキー最上段にある数字キーだけではなく、テンキーからも入力されることを前提としています。 【javascriptのソース】…ブラウザIEのみに対応の場合 function suujinomi(evt) { evt = window.event; txt = String.fromCharCode(evt.keyCode);   ...(1) if("0123456789abcdefghi\b\r\t.'`%\60".indexOf(txt,0) < 0) {  return false; ...(2) } else {  return true; } } 【テキストフィールドhtmlのソース】 <input type=text value="" onkeydown="return suujinomi(event)">  以下のようにな問題(1)、(2)を解決できず困っています。 (1) メインキーボードの最上段にある数字キーのシフトケースである  半角文字!"#$%&'()もテキストフィールドに入力でき、 (2) ブラウザIE以外のブラウザでは、次のようにステートメント(1)、(2)を書き換えてみたのですが、入力可能な文字が全く制限されません。  javascriptのステートメント(1)   → txt = String.fromCharCode(evt.which);  javascriptのステートメント(2)   → evt.cancelBubble = true;     evt.returnValue = false;     return false;  どのようにすれば、問題(1)、(2)を解決できるかどうか教えて下さい。  よろしくお願い致します。

専門家に質問してみよう