イメージ プロパティのコンテキスト メニュー拡張機能が行うことは、ユーザー スクリプトをコンテキスト メニュー API と組み合わせて使用することです。
ユーザー スクリプトはすべてのページに挿入され、コンテキスト メニュー イベントをリッスンし、画像に関する情報をchrome.extension.sendRequest
次のように拡張機能に送信します。
document.addEventListener("contextmenu", function (e) {
var elem = e.srcElement;
if (elem instanceof HTMLImageElement) {
var img = {
src: elem.src,
alt: elem.alt,
height: elem.height,
width: elem.width
}
chrome.extension.sendRequest(img);
}
}, true);
バックグラウンド ページはchrome.extension.onRequest.addListener
、このデータを受け取るために使用し、それをグローバル変数に格納します。コンテキスト メニュー API のクリック コールバックは、このグローバル変数からデータを読み取ります。
chrome.extension.sendRequest
これは、呼び出しが常にクリック コールバックの前に処理されることを前提としていますが、常にそうであるとは限りません。データが到着したかどうかをコールバックでチェックし、到着していない場合は、しばらくしてから ( を使用してsetTimeout
) 再試行することができます。