contextMenuのいずれかを重複させると除外する方法はありますか?
例:
編集可能と選択の2つのコンテキスト項目があります。状況で
これらのタイプの両方は、(編集可能な内部の選択)と一致chrome.contextMenus除外タイプ
Chromeは両方のアクションのためにサブメニューを与えます。
私は1つしか持っていません。
この特定の状況で、これらのタイプのいずれかを優先順位付けまたは除外するにはどうすればよいですか?
contextMenuのいずれかを重複させると除外する方法はありますか?
例:
編集可能と選択の2つのコンテキスト項目があります。状況で
これらのタイプの両方は、(編集可能な内部の選択)と一致chrome.contextMenus除外タイプ
Chromeは両方のアクションのためにサブメニューを与えます。
私は1つしか持っていません。
この特定の状況で、これらのタイプのいずれかを優先順位付けまたは除外するにはどうすればよいですか?
メニュー項目のタイプが同じ(つまり同じタイプ、タイプなど)の場合は、コンテキストメニューを宣言して複数のコンテキストを指定できます。コンテキストのいずれかが一致するとメニュー項目が表示されます。 「選択」のコンテキストのための「メモしておいてください」とのタイトル
contextMenus
APIは、この使用例を直接サポートしていません。したがって、次善策は、第3の状況でコンテキストメニューが表示される前に「編集可能」のコンテキストメニューを削除することです(3番目の状況がもはや適切でない場合はコンテキストメニューを復元する)。
状況によっては、ユーザー(de)がテキストを選択したときを検出するのにselectionchange
を使用します。テキストを選択したら、入力フィールドが選択範囲にあるかどうかをチェックします(Selection
、Range
、DOM(トラバーサル)APIを組み合わせることができます)。入力フィールドが見つかった場合は、目的のコンテキストメニュー項目を削除します。 メニュー項目が見つかったかどうかに関わらず、キーおよび/またはマウスイベントのリスナーを追加して、ユーザーのポインターが入力フィールドにあるかどうかを検出します。
selectionchange
(https://stackoverflow.com/a/13673942/938089)とShowing context menu buttons only when right-clicked on classes that start with “Story”の1つを使用する例を次に示します。
Robありがとうございます。私はこれを達成するための唯一の方法だと考えていますが、私のニーズには過剰です。私はそれをそのまま残す(サブメニューバージョンで)。 –
2つを 'chrome.contextMenus.create'呼び出しにまとめると、メニュー項目は1つだけ表示されます。それはあなたのための選択肢ですか? –
@RobWいいえ、残念ながら私はこれらの2つのアクションが必要です。重複している状況でのみ、注記**を優先してください。http://prntscr.com/d6gc24 –