我正在尝试获取“选项”页面上设置的信息,以更改扩展的行为。

基本上,如果将OptionsPage上的复选框设置为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>
有帮助吗?

解决方案

如果你有 选项页面 您想与 背景页面, ,你可以做到, 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');
}

内容脚本通信到背景页面


当您指的是“注入页面的代码”时,是否有任何网站?如果是这样,您需要使用 内容脚本消息传递. 。为此,您可以做到这一点。

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);

任何状况之下, 消息传递 对于任何进入扩展的人来说,都是一个很好的阅读。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top