我是Chrome扩展新手.我正在尝试在内容脚本和background.html页面之间进行通信.该background.html发送一个请求," 你好 ",以内容脚本和内容脚本应该以"进行回应你好背景 "警报.但它只是没有发生.我的background.html代码是:
function testRequest() {
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {greeting: "hello"});
});
}
Run Code Online (Sandbox Code Playgroud)
content.js代码:
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello")
alert("hello background");
}
);
Run Code Online (Sandbox Code Playgroud)
popup.html代码:
<!doctype html>
<html>
<head></head>
<body>
<form>
<input type="button" value="sendMessage" onclick="testRequest()" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
manifest.json:
{
"browser_action": {
"default_icon": "icon.png",
"popup": "popup.html"
},
"background": {
"page": "background.html"
},
"permissions": [
"tabs",
"http://*/*",
"https://*/*",
"notifications",
"contextMenus"
],
"content_scripts": [
{
"matches": …
Run Code Online (Sandbox Code Playgroud) 我一直在尝试将数据从我的后台页面发送到我的Chrome扩展程序中的内容脚本.我似乎无法让它工作.我在线阅读了一些帖子,但它们并不是很清晰,而且看起来很高.我已经设法使用Chrome样本上的Oauth联系人示例来运行oauth.身份验证工作,我可以通过打开一个新选项卡获取数据并在html页面中显示它.
我想将此数据发送到内容脚本.
我在这方面遇到了很多麻烦,如果有人可以概述你需要遵循从bg页面发送数据到内容脚本甚至更好的代码的明确步骤,我将非常感激.任何接受者?
我的背景页面的代码如下(我已经排除了oauth paramaeters和其他)
` function onContacts(text, xhr) {
contacts = [];
var data = JSON.parse(text);
var realdata = data.contacts;
for (var i = 0, person; person = realdata.person[i]; i++) {
var contact = {
'name' : person['name'],
'emails' : person['email']
};
contacts.push(contact); //this array "contacts" is read by the
contacts.html page when opened in a new tab
}
chrome.tabs.create({ 'url' : 'contacts.html'}); sending data to new tab
//chrome.tabs.executeScript(null,{file: "contentscript.js"});
may be this may work?
};
function getContacts() { …
Run Code Online (Sandbox Code Playgroud)