したがって、現在、タグのマウスクリックを傍受し、発信リンクを変更し、ユーザーを途中で送信するスクリプトがあります。
$("a[href*='" + someDomain + "']").bind('click keypress', function(event) {
event.preventDefault();
var link = this.href;
var newLink = link + params;
var button = event.button;
if(button && button == 0)) {
window.location = newLink;
} else if(button && button === 1) {
window.open(newLink, '_blank');
}
});
このコードは、左クリックか中クリックかを判断し、それに応じて現在のページをリダイレクトするか、新しいウィンドウ/タブで開きます。
私が見る限り、コードは Chrome/IE で正常に動作します。ただし、Firefoxの最新バージョンでは、左クリックのみが機能しています。
中クリックの場合、イベントは登録されません。そのため、最初に考えたのは、他にどのイベントがトリガーされている必要があるかを調べることでした。私が見つけた唯一のものは、マウスダウン/マウスアップのいずれかでした (クリックはこれらの組み合わせです)。
mousedown または mouseup を使用して、Firefox で中クリックを適切に登録するイベントを取得します。ただし、問題は、Firefox が CLICK イベントの結果ではない JavaScript コードから新しいウィンドウを開くことを拒否することです。
それで....これが実際に可能かどうかの手がかりはありますか?ユーザーがポップアップを許可したり、中クリック機能を再マップして現在のウィンドウで開いたりする必要はありません。
助けてくれてありがとう!