jsでホイールクリックを無効にする方法

このQ&Aのポイント
  • javaScriptを使用してホイールクリックを無効にする方法について教えてください。
  • IE10でホイールクリックを無効にしたいのですが、現在の実装では新しいタブで開いてしまいます。
  • clickイベントが実行される前にタブが開いているのかどうか、また別の方法で実装する方法を知りたいです。
回答を見る
  • ベストアンサー

jsでホイールクリックを無効にしたい

javaScriptでホイールクリックを無効にする方法について教えて下さい。 IE10でホイールクリックを無効(新しいタブで開かなければOK)としたいのですが 以下javaScriptを実装しても新しいタブで開いてしまいます。 chromeであれば元のタブ上で開くことは確認済です。 $('a').click(function(e) {  window.location.href = $(e.target).attr('href');  return false; }); clickイベント内でログを出力してみましたが、ログが出力されなかったため IEでは、このclickイベントが実行される前にタブが開いているのでしょうか? また、jquery.detailclick.jsを読み込んで、以下を実装してみましたが、 これも動作しませんでした。 $(document).ready(function(){  $('a').bind("wheelClick",function(e){   return false;  }); }); コードが誤っている、別の方法で実装できる等、ご存知の方教えて頂けませんか?

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

  • ベストアンサー
回答No.4

<style> a > span { background:red; } </style> だから、よみこんだあとからだよ。 こちらのIE10は、よくせいできている。 はいけいが赤になる!のCSSついかしてかくにんして!

gogotii
質問者

お礼

すみません。私が間違えているようですね。 p.tagNameの中にDIVが入ってしまっているので、他のタグが影響しているのかもしれません。 もう少し自分で考えてみます。 一度締めます。ありがとうございました。

その他の回答 (3)

回答No.3

#2です。 訂正です。 ごめんです。 document.addEventListener ('click', handler, false);

gogotii
質問者

補足

回答ありがとうございます。 やってみたところ、やはりchormeでは動きますがIEでは動作しませんでした…。 handlerの中にconsole.log("test");を記載してみても、元タブにログが出力されないです。 IEは、イベントの処理前に新しいタブを開いてしまっているのでしょうか?

回答No.2

よみこみがしゅうりょうしたら、アンカーたぐのなかを span のなかにうつすってのはどう? (function () {  var A = document.querySelectorAll ('a');  var s = document.createElement ('span');    Array.prototype.forEach.call (A, function (a) {   var cron = this.cloneNode (false);   while (a.hasChildNodes ())    cron.appendChild (a.firstChild);   a.appendChild (cron);  }, s);   }) (); function handler (event) {  var e = event.target;  var p = e.parentNode;    if ('A' === p.tagName)   if (event.button === 1)    return event.preventDefault (); } document.addEventListener ('click', handler, true);

回答No.1

https://www.google.co.jp/search?q=javascript+%E3%83%9B%E3%82%A4%E3%83%BC%E3%83%AB%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF+IE 検索ぐらいしましょう。 というかそれ以前に「新しいタブで開けない」という迷惑行為をやめなさい。

gogotii
質問者

補足

検索した上で、実装してみたのですがうまくいかなかったので、お伺いしています。 event.buttonでどのボタンがクリックされたのかで判別してみましたが、 これもchromeではうまくいきますが、IE10では動作しませんでした。 $("a").click(function(e){  if(e.button == 1){   return false;  } }); 「新しいタブで開けないという迷惑行為」というのも理解しています。 限られたところだけに公開する予定で、そういった要望があるため実装したいのです。

関連するQ&A

  • 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; どうすれば実現できるのか、教えてください。

  • 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()をいれると無効化できるといった記述も見たのですが、 今回はその方法は使わずに実装する予定です。 どなたか方法をご存知でしたら、ご教授ください。 (コメントアウトしているものも試しましたが、うまくいきませんでした)

  • javascriptにてonclickを無効

    javascriptにてonclickを無効にしたい 下記のように、onclickイベントキャンセルを書きましたが、 onclickのjavascriptが実行されます。 何かヒントはありませんか? <html> <head> <script language="JavaScript"> document.onclick = function(e) { event.returnValue = false; } </script> </head> <body> <a href="a.htm" onclick="alert('onclick');">onclick有り</a> <a href="a.htm">onclick無し</a> </body> </html> ※環境 Windows2000(sp4)+ie6(sp1)

  • 動画上での右クリック禁止について

    右クリックを禁止するJavaScriptを外部ファイルに 書いて、動画のプロパティなどが見づらいように したいと思っているのですが、うまくいきません。 oncontextmenuを無効にする形で、 HTMLや画像の上では、右クリックを無効にできたのですが、埋め込んだWindowsMediaplayerの動画の上で 右クリックをすると、普通にcontextmenuが出てきて しまいます。 どのようにしたら、動画ファイル上での右クリックを禁止にすることができるでしょうか? どなたか教えてください。よろしくお願いします。 外部JSファイルに書いた内容は、下記のとおりです。 function DisableOnContextMenu(ev) { return false; } function DisableContextMenu(ev) { if (ev) { if (ev.button && ev.button == 2) { // W3C DOM2 return false; } else if (!ev.button && ev.which == 3) { // N4 return false; } else if (navigator.platform.indexOf("Mac")!=-1 && navigator.appName == "Netscape") { return false; } } else { if (event && event.button && event.button == 2) { // IE return false; } } } if (navigator.appName == "Netscape" && !(navigator.platform.indexOf("Mac")!=-1)) { document.captureEvents(Event.MOUSEDOWN); } document.onmousedown=DisableContextMenu; document.oncontextmenu=DisableOnContextMenu;

  • ホイールのクリック

    IEの上でホイールをクリックすると丸いカーソルが出るパソコンがあります。 それが不便なのでホイールのクリックを無効にしたいのですが可能ですか? 物理的に無効にしてもよいのですがホイールのクリックが必要になるソフトはありますか?

  • クリックするとするするとスクロールさせたい(JS)

    Javascript勉強中です。 画像のリンクをクリックすると、同一ページ内の任意の場所までするすると、 スクロールするような機能を作成したいのです。 現状、通常のaタグでくくったリンクであれば、実現できています。 ■HTML <a href="#top"><div><img src="./img/naviHome.png" name="home"></div></a> <a href="#recruit"><div><img src="./img/naviRecruit.png" name="recruit"></div></a> <a href="#priceList"><div><img src="./img/naviPriceList.png" name="priceList"></div></a> ■javascript <script type="text/javascript"> <!-- //aリンクをクリックすると、同一ページ内の任意のnameタグまでするするとスクロールする $('a[href^=#]').click(function() { // スクロールの速度 var speed = 800; // アンカーの値取得 var href= $(this).attr("href"); // 移動先を取得 var target = $(href == "#" || href == "" ? 'html' : href); // 移動先を数値で取得 var position = target.offset().top; // スムーススクロール $('body,html').animate({scrollTop:position}, speed, 'swing'); return false; }); --> </script> ここから、画像が選択されたことを示すために色をかえた画像に切り替えたいため、 下記のJavascriptを実行させたいのです。 //選択されたことを明示するため画像をいれかえる// document.home.src="./img/selectedHome.png" aリンクをなくして、以下のようにしてしまうと、「$('a[href^=#]').click(function() 」が動作しません。 うまく、するするとスクロールさせながら、画像を入れ替える処理ができないものでしょうか? <a href="javascript: fncNaviLink('#top');"><div><img src="./img/naviHome.png" name="home"></div></a> function fncNaviLink(link) { document.home.src="./img/selectedHome.png" location.href = link; }

  • jQuery.jTagging.jsを使った入力

    現在、jQuery.jTagging.jsを使った入力支援を 以下のサイトを参考に作っています。 http://phpjavascriptroom.com/exp3.php?f=include/ajax/jquery_plugin_other/jtagging.inc&ttl=%E8%A8%AD%E7%BD%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB 上記サイトの例のようにテキストボックスだと、問題なく動作するのですが テキストエリアにすると動作しません。 以下、上記サイトを基にして、テキストエリアでテストしたコードです。 <script type="text/javascript"> $(function() { $("#TagTextArea1").jTagging($("#TagDiv1"), ","); }); </script>   ・   ・   ・ <h2>例1</h2> <p>your tags: <textarea id="TagTextArea1"></textarea> カンマ区切り</p> <div id="TagDiv1" class="box"> <a href="#" onclick="return false;">javascript</a>&nbsp;&nbsp; <a href="#" onclick="return false;">jquery</a>&nbsp;&nbsp; <a href="#" onclick="return false;">tag</a>&nbsp;&nbsp; <a href="#" onclick="return false;">cool</a> </div> jQuery.jTagging.jsを使用した入力支援は テキストエリアでは、実装することは不可能なのでしょうか?

  • JavaScriptコードの最適化

    JavaScript、超初心者です。 よくわからないので、同じコード3つ書いています。 もっと簡単に最適化されたコードはどう書けばよいですか? 宜しくお願いします。 $(function () { $(".aaa").click(function(){ window.open($(this).find("a").attr("href"), '_blank'); return false; }); $(".bbb").click(function(){ window.open($(this).find("a").attr("href"), '_blank'); return false; }); $(".ccc").click(function(){ window.open($(this).find("a").attr("href"), '_blank'); return false; }); });

  • Firefoxのホイールボタンクリックが無効に

    先日のファイアフォックスのアップデートにてホイールボタンクリックが無効になりました。以前はホイールボタンをリンク文字列等の上でクリックすると「元のページを表示したままリンク先を新しいタブで開く」という状態でした。が、新しいバージョンではそれができません。 右クリック⇒リンク先を新しいタブで開く、とすれば同じ事ではあるのですが、ワンクリックの便利さに慣れてしまっているので出来る事ならホイールボタンワンクリックで済ませたいです。 解決方法についてご存知の方がおられましたら教えて頂けないでしょうか。宜しくお願い致します。

  • javascript return について

    javascript return の使い方について こんにちは。 javascriptでhtmlとjavascriptを分けて書く方法を勉強中です。 ○html文 <a href="" name ="linkMaxcd" id ="linkMaxcd">最大値</a> ○javascript文 1)document.getElementById("linkMaxcd").onclick=function(){return maxcd();} 2)function maxcd(){    省略   return false;   } この構文の流れは、 (1)htmlの最大値というテキストリンクをクリックする (2)javascript 1)のonclickしたら、maxcdのfunctionを実行する (3)javascript 2)の省略を行い、return false;でfalseを返す ということだと思います。 javascript 2)のreturn false; のfalseは、何処に戻るのですか? ○javascript参考 1')document.getElementById("linkMaxcd").onclick=function(){maxcd();} 2')function maxcd(){    省略   } もともと上記のjavascript参考にreturnを付け加えたところで、理解できなくなりました。 returnの付け方は、javascript参考サイトの手順に書いてありました。 よろしくお願いします。 以上

専門家に質問してみよう