Chrome 拡張機能を開発するとき、バックグラウンド スクリプトは、特定のサイトで読み込まれたタブ内のコンテンツ スクリプトと通信する必要があります。chrome.tabs.sendRequest を使用せずに通信する方法はありますか?
この機能には、「この拡張機能は閲覧履歴にアクセスできます」と表示される「タブ」権限が必要であり、ユーザーを怖がらせます。
Chrome 拡張機能を開発するとき、バックグラウンド スクリプトは、特定のサイトで読み込まれたタブ内のコンテンツ スクリプトと通信する必要があります。chrome.tabs.sendRequest を使用せずに通信する方法はありますか?
この機能には、「この拡張機能は閲覧履歴にアクセスできます」と表示される「タブ」権限が必要であり、ユーザーを怖がらせます。
申し訳ありませんが、他の方法はありません。
アップデート
実は方法があります。バックグラウンド ページからコンテンツ スクリプトにデータをプッシュする代わりに、コンテンツ スクリプトからデータをプルできます。これにはパーミッションは必要ありません。
コンテンツ スクリプト:
chrome.extension.sendRequest({cmd: "getData"}, function(response) {
console.log("data:", response);
});
背景ページ:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if(request.cmd == "getData") {
sendResponse({param1: "value1", param2: "value2"});
}
});
を使用せずにバックグラウンド ページと通信できたとしてもchrome.tabs.sendRequest
(実際にはほとんど不可能tabs
です)、コンテンツ スクリプトを挿入するためにパーミッションが必要です。
詳細: http://code.google.com/chrome/extensions/content_scripts.html