1

ページにリンクのグループがあります。ユーザーがリンクをクリックすると、非同期リクエストがトリガーされ、ページのコンテンツ領域がレスポンス html で更新されます。

これは問題なく動作しますが、ユーザーが「中ボタン」(またはマウス ホイール、名前は何でも!) でリンクをクリックした場合を除きます。次に、新しいタブが開き、応答が返されてそのタブにレンダリングされます。

これを防ぐ方法はありますか?

4

2 に答える 2

2

JavaScript でリンクをキャッチし、デフォルトのリンク動作をオーバーライドします。

このような:

$('a.ajax').click(function(e){
   e.preventDefault();
   // do ajax stuff, and add an onfinish function that does
   // something like document.location.href = this.attr('href');
});

コンテンツ領域が更新されていることに気付いたので、document.location.href を実行する必要はありません。e.preventDefault(); でデフォルトの動作をキャッチするだけです。

// edit preventDefault は中マウス ボタンを止めません... タグを使用しないことを検討しましたか? リンクを含むスパンにアクセスできるはずなので、スパンに onclick イベントを追加して、css でリンクを非表示にできますか?

于 2010-08-26T08:40:41.870 に答える
0

残念ながらいいえ、Javascript はセキュリティ上の理由からその種のコントロールにアクセスできません。

于 2010-08-26T08:40:23.060 に答える