Chrome拡張機能における「右クリックメニューのカスタマイズ(コンテキストメニューの追加)」は、chrome.contextMenus API を使って実装します。この機能を使うことで、ユーザーがWebページ上で右クリックした際に、特定の項目をコンテキストメニュー(右クリックメニュー)に追加し、拡張機能と連携した操作を行えるようにできます。
1. 基本構成
a. manifest.json の設定
manifest.json の設定拡張機能でコンテキストメニューを利用するには、"permissions" に "contextMenus" を追加します。
2. コンテキストメニューの追加方法
a. background.js でメニューを作成
background.js でメニューを作成
3. メニュークリック時のイベント処理
作成したコンテキストメニューがクリックされた際の処理を chrome.contextMenus.onClicked で定義します。
4. 表示コンテキストの種類
contexts には以下のような値が指定できます。
| 値 | 説明 |
|---|---|
"page" |
ページ上で右クリックしたとき |
"selection" |
テキスト選択時に右クリックしたとき |
"link" |
リンク上で右クリックしたとき |
"image" |
画像上で右クリックしたとき |
"video" |
動画上で右クリックしたとき |
"audio" |
音声上で右クリックしたとき |
"editable" |
テキスト入力欄で右クリックしたとき |
"all" |
すべてのコンテキストで表示 |
5. サブメニューの作成(複数メニュー)
6. 注意点
-
chrome.contextMenus.create()は拡張機能のインストールまたは更新時(onInstalled)に行うのが一般的です。 -
Manifest V3 では
background.jsは Service Worker になっており、永続的ではないため、状態を保持する場合はstorageAPI との併用が必要です。 -
コンテキストメニューはユーザー操作の補助であり、最小権限の原則を意識して設計してください。
まとめ
Chrome拡張機能における「右クリックメニューのカスタマイズ」は、ユーザーの操作性を向上させるための重要な手段です。chrome.contextMenus API を使えば、様々なコンテキストに応じたメニューの追加・処理が可能です。適切な context とイベントハンドラを組み合わせて、拡張機能に必要な機能を自然な形で統合できます。
生成日:2025/05/18