2011-09-26 10 views
11

私は現在、単純なフォーラムアプリケーションを設計中です。これは主にjQuery/AJAXを使用しており、すべて同じページにロードされます。しかし、フォーラムを閲覧するときに、新しいタブでそれらを見るために、いくつかのトピックを一度に開くことをユーザーが望むことがあることを私は知っています。jQuery:マウスの検出新しいタブでターゲットをクリックして開く

私の解決策は、マウスの中央ボタンをクリックしてマウスの左ボタンをクリックしたときにそれを検出し、別の操作を行うことでした。私はマウスのボタンをクリックしたときにAJAXをターゲットにロードしたい、そうでなければ新しいタブにロードする。

私の唯一の問題は、jQueryを使用して新しいタブでターゲットの場所を開く方法がわかりません。明らかに、新しいタブを自由に開くことはできませんが、このタイプの動作をユーザー生成アクションに割り当てる方法はありますか?

ありがとうございます!

答えて

15

を参照することができます。それは

<script type='text/javascript'> 
    jQuery(function($){ 
     $('a').mousedown(function(event) { 
      switch (event.which) { 
       case 1: 
        //alert('Left mouse button pressed'); 
        $(this).attr('target','_self'); 
        break; 
       case 2: 
        //alert('Middle mouse button pressed'); 
        $(this).attr('target','_blank'); 
        break; 
       case 3: 
        //alert('Right mouse button pressed'); 
        $(this).attr('target','_blank'); 
        break; 
       default: 
        //alert('You have a strange mouse'); 
        $(this).attr('target','_self"'); 
      } 
     }); 
    }); 
</script> 
+1

リンクをクリックすると、アクションが実行される前にターゲット属性が変更されますか? – Phillip

+0

はい、私は行動の前に属性を変更します。 –

+0

ユーザーがリンクをクリックしたり、新しいタブを開いたりしたいときにリンクが隠れているのですが、これらの方法ではIEのみで可能です...私は何ができますか? –

0

マウスの中央ボタンのデフォルト動作は、新しいタブで開きます。

ハイパーリンクのターゲット属性を_blankに設定すると、新しいタブを開くことができます。

<a href="#link" target="_blank">Link</a> 

はまた、サンプルコードで見てください、この質問How to distinguish between left and right mouse click with jQuery

+0

質問を編集してより明確にする必要があります。私は左クリックでAJAXでターゲットをロードし、中マウスクリックで新しいタブで開くようにしています。 – Phillip

1
$('#element').mousedown(function(event) { 
      if(event.which == 3) { // right click 
       window.open("newlocation.html",""); 
      } 
    }); 

が、それはhttp://jsfiddle.net/8CHTm/1/あなたはあなたがクリックCTRLとCMD-クリックであることも考慮する必要があり

$('#element').mousedown(function(event) { 
     if(event.which == 3) { // right click 
      window.open('page.html','_newtab'); 
     } 
}) 
+0

@Philip私はフィドルを追加しました。 – Ehtesham

9
<a href="some url" target="_newtab">content of the anchor</a> 

を生きる見るのを助けること新しいタブを開くために使用されます(windows/linuxとmacのそれぞれで)。これはより完全な解決策になります:

jQuery.isClickEventRequestingNewTab = function(clickEvent) { 
    return clickEvent.metaKey || clickEvent.ctrlKey || clickEvent.which === 2; 
}; 
+0

ああ、私はwindow.openでターゲット属性を設定できるかどうかはわかりませんでした。これを試してみましょう。ありがとう! – Phillip

+0

あなたは大歓迎です...................:D:D:D:D –

5

を使用することができますJavaScriptで

-1

代わりに "_blank" の "_newTab"

window.open(URL、 "_newtab")を試してみてください。

関連する問題