1

したがって、現在、タグのマウスクリックを傍受し、発信リンクを変更し、ユーザーを途中で送信するスクリプトがあります。

$("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 コードから新しいウィンドウを開くことを拒否することです。

それで....これが実際に可能かどうかの手がかりはありますか?ユーザーがポップアップを許可したり、中クリック機能を再マップして現在のウィンドウで開いたりする必要はありません。

助けてくれてありがとう!

4

1 に答える 1

1

ただし、一部のブラウザーでは、マウスの右ボタンと中央ボタンのデフォルトのアクションを無効にすることはできません。または、ブラウザーの設定を変更することによってのみ無効にすることができます。ブラウザ設定に対するこのような変更は、通常、ブラウザを通じて表示されるすべてのページに影響し、通常は Javascript から行うことはできません。これを行うユーザーはほとんどいないため、これらのマウス イベントは Javascript からは使用できないことを意味します。

http://www.unixpapa.com/js/mouse.htmlから

于 2013-01-08T01:36:01.733 に答える