6

コンテキストメニューのjQueryプラグインを使用していますが、これをサポートしているブラウザを検出する必要があります。これはどのように行うことができますか?

OperaとSafariの一部のバージョンは、この右クリックのオーバーライドビジネスをサポートしていないと聞きました。

4

1 に答える 1

4

コンテキストメニュー イベントを手動で作成して発生させることができます。適切なハンドラーを設定すると、ハンドラーが呼び出されたかどうかを検出できます。

以下に例を示します (イベントの作成と監視に jQuery を使用)。

function testContextMenuEvent() {
  var supported = false;
  function handler(e) {
    supported = true;
    e.stopPropagation();
  }
  $(document).bind('contextmenu', handler);
  var evt = jQuery.Event("contextmenu");
  $(document).trigger(evt);
  $(document).unbind('contextmenu', handler);
  return supported;
}

ここにテストページがあります: http://jsfiddle.net/Hk4xA/6/

edit2 : DOM が再び攻撃されました。createEventIEでは完全に機能しないことを忘れていました。代わりに、イベントの作成にも jQuery を使用しました。

于 2010-06-04T08:39:35.543 に答える