1

Chrome拡張機能を開発する際、バックグラウンドスクリプトは特定のサイトに読み込まれたタブのコンテンツスクリプトと通信する必要があります。 chrome.tabs.sendRequestを使用せずに通信する方法はありますか?「タブ」権限を要求せずにコンテンツスクリプトと通信する

この機能には、「この拡張機能があなたの閲覧履歴にアクセスできる」と表示される「タブ」権限が必要です。これはユーザーを怖がらせるものです。

+0

あなたのコミュニケーションが複雑でない場合、あなたは 'tabs'許可は必要ありません。あなたはどんな情報を伝えていますか? – Darin

答えて

4

申し訳ありませんが、他の方法はありません。

UPDATEが実際に方法があります。

コンテンツスクリプト:

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"}); 
    } 
}); 
+0

彼は質問しています:「chrome.tabs.sendRequestを使用しないで**コミュニケーションする方法はありますか?」 –

+0

@Derekだから私の答えのどこかに 'chrome.tabs.sendRequest'がありますか?さらに彼は、この特定の方法よりもタブ許可の警告を出さずにコミュニケーションを心配しています。また、あなたの答えとしては、コンテンツスクリプトを注入するときにマニフェストを通してタブ権限を必要としません。 – serg

+0

コンテンツスクリプトを挿入すると、 'tabs'パーミッションと同じ警告が表示されます。 –

1

あなたがchrome.tabs.sendRequestを使用せずに、バックグラウンドページと通信できたとしても覚えておいてください(実際にはそれがほとんどimpossible)、コンテンツスクリプトを挿入するには依然としてtabs権限が必要です。

続きを読む:@sergが正しいhttp://code.google.com/chrome/extensions/content_scripts.html

+0

スクリプトを挿入するには2つの方法があります:1つはマニフェスト内の宣言で、もう1つは "タブ"を必要としません。もう一方はプログラム的に "タブ"を必要とします。とにかく私に思い出させてくれてありがとう。とにかく私はある時点でプログラム的に注入する。だから私は今、 "タブ"を使う2つの理由があります。 – huyz

関連する問題