2011-12-24 19 views
2

オプションページの関数をバックグラウンドページから呼び出すにはどうすればよいですか?Chrome拡張機能:オプションページの機能をバックグラウンドページから呼び出すことはできますか?

例えば、オプションページでは、あなたが呼び出すことができます。これにより、オプションのページから背景ページと通信

chrome.extension.getBackgroundPage().updateIcon("someDifferentIcon.png"); 

。あなたはバックグラウンドページからオプションページとどのように連絡しますか?

オプションのページが常に開いているというわけではありません(バックグラウンドとは異なります)。そのため、上記のような組み込みではない理由を説明することがあります。私の質問は、それは可能なのですか?

+0

あなたは何を意味するのですか?例が常に役立ちます。 –

+0

ありがとうございます、上記をご覧ください。 – Shazam

答えて

4

"chrome.extension.sendRequest" APIを使用してアイデアを実装する簡単な方法です。たとえば、次のように

options.js:

chrome.extension.sendRequest({id:"updateIcon", filename:"foo.png"}); 

background.js:

chrome.extension.onRequest.addListener(funciton(request) { 
    if (request && (request.id == "updateIcon")) 
     updateIcon(chrome.extension.geURL(request.filename)); 
}); 
1

オプションページが既に開いている場合は、chrome.extension.getViews({type:"tab"})を使用してそのウィンドウオブジェクトを保持し、その上で関数を呼び出すことができます(返されたビューを繰り返し処理し、あなたのオプションページのURL)。まだ開いていない場合は、tabs APIを使用して最初にそのタブをポイントしてから、chrome.extension.getViewsを使用します。

関連する問題