5

拡張機能の動作を変更するために、オプションページで設定されている情報を取得しようとしています。

基本的に、OptionsPageのチェックボックスがtrueに設定されている場合、拡張機能は実行されます。それ以外の場合は実行されません。テスト目的でbackground.htmlでtrueを返していますが、それでも機能しません。

助けてくれませんか?ありがとう!

ページに挿入されているコード:

if(chrome.extension.sendRequest() == 'true')
    alert("checkbox set to true");
else
    alert("it is disabled");

background.html

<script>
chrome.extension.onRequest.addListener(function(){
    return true;
    }
</script>
4

1 に答える 1

14

オプションページがあり、バックグラウンドページと通信したい場合は、chrome.extension.getBackgroundPage()を実行するだけです。

背景ページと通信するオプションページ


options.html

var bkg = chrome.extension.getBackgroundPage()
bkg.startExtension();
bkg.stopExtension();

background.html

function startExtension() {
  console.log('Starting Extension');
}

function stopExtension() {
  console.log('Stopping Extension');
}

バックグラウンドページと通信するコンテンツスクリプト


「ページに挿入されているコード」という場合、それはどのWebサイトですか。その場合は、メッセージパッシングでコンテンツスクリプトを使用する必要があります。そうするために、あなたはこれをすることができます。

content_script.js

chrome.extension.sendRequest({action:'start'}, function(response) {
  console.log('Start action sent');  
});

background.html

function onRequest(request, sender, sendResponse) {
 if (request.action == 'start')
   startExtension()
 else if (request.action == 'stop')
   stopExtension()

 sendResponse({});
};
chrome.extension.onRequest.addListener(onRequest);

いずれにせよ、メッセージパッシングは拡張機能を利用する人にとっては良い読み物です。

于 2010-06-08T16:31:34.733 に答える