2011-10-23 7 views
1

私のブラウザ(Firefox)は、ポップアップの読み込みを防止し、リンクを新しいタブまたはウィンドウにロードするよう適切なショートカットで明示しない限り、現在のタブで新しいウィンドウを開くリンクを読み込みます(たとえば、リンクをクリックするか、またはctrlを左クリックすると、新しいタブでリンクが開き、シフト +新しいウィンドウで左クリックします)。JavaScriptのクリックイベント

私はリンクを押したときにいくつかのコード(リンクアドレスを作成するためのもの)を実行し、上記のユーザーエクスペリエンスを削除せずに作成されたリンクを読み込むjavacript関数f()を作成したいと考えています。 今私が持っているものは<a href="javascript:void(0)" onclick="f()"/>のようなものですが、中間クリックは機能しません(代わりにURLはjavascript:void(0)にロードされます)。

あなたの問題を解決する方法はありますか?

ありがとうございました。

答えて

4

あなたはwindow.open( 'url')を試しましたか?

は、以下を参照してください。http://www.javascript-coder.com/window-popup/javascript-window-open.phtml

また、私の知る限り、あなたはブラウザの新しいタブまたは新しいウィンドウで開きますかどうかを制御することはできません。これは、すべてのユーザーごとに異なるブラウザ設定です。

あなたはまた、onclickのを削除してみてください、と<a href="javascript:f()"></a>

EDIT

を使用する代わりに、JavaScriptを実行新しいタブを開くと中クリックを使用しての問題があるようですがありますmiddle click (new tabs) and javascript links

そのサイトが言うように、代わりに要素のIDを作成し、javascriptを介してバインドすることができます。

**そのリンクから撮影:

<a href="/non/ajax/display/page" id="thisLink">...</a> 

そして、あなたのJSで、それはAJAX呼び出しを行うためにIDのヴィアリンクをフック。 クリックイベントがバブリングするのを止める必要があることに注意してください。大部分の フレームワークには、呼び出すことのできるイベントキラーが組み込まれています(イベントクラスで と表示されます)。

のjQueryなし
$("#thisLink").click(function(ev, ob) { 
    alert("thisLink was clicked"); 
    ev.stopPropagation(); 
}); 

、それは次のようになります:

document.getElementById('thisLink').onclick = function(e) 
{ 
    //do someting 
    e.stopPropagation(); 
} 
+0

どこにwindow.open( 'url')を挿入したいですか?もしそれがf()関数の中にあれば、私は、リンクを真ん中でクリックすると、URLが 'javascript:void(0)'という新しいタブを開くという事実は変わるとは思わない。 自分のブラウザの横にあるものを制御したくありません。 私は実際にGreasemonkeyスクリプトを作成しようとしています。 href = "javascript:f()"リンクをクリックすると、新しいタブに「javascript:f()」というURLが作成されます。 – SimonNN

+0

私はf()関数でも試してみました。だからこれを試して、それが動作するかどうかを確認してください: Link Here f = function(){window.open( 'url'); } – LordZardeck

+0

あなたが説明したリンクをクリックすると、新しいタブが開きます。そのURLはjavascript:f()です。 – SimonNN

0

他のブラウザは変更になる場合がありますが、デフォルトではFirefoxのdoesnの

は、ここではjQueryでイベント処理とイベントキラーですWebページに中クリックされたことを伝えないでください(この機能を有効にするために非表示の設定を設定しない限り)。代わりにfocusおよび/またはmouseoverイベントに基づいて回避策を作成することができます。

+0

これは、Firefoxを使用すると、リンクをロードする前に中間クリックのユーザーエクスペリエンスを損なうことなくjavascriptコードを実行することは不可能であることを意味しますか?どんな隠された嗜好について話していますか?私があなたのアイデアを誤解しない限り、マウスオーバーやフォーカスは私が探しているものではありません。 – SimonNN

+0

Firefoxには、実際にリンクを途中でクリックしたことを示す方法はありません。私はリンクアドレスを作成するコードが必要なことを理解しました。マウスオーバーやフォーカスイベントを使用してそのコードを実行しようと考えていました。 – Neil

関連する問題