Javascript 谷歌';s Chrome扩展消息示例代码未定义响应
谷歌关于Chrome扩展开发的文档已经发布。我正在尝试示例代码: background.jsJavascript 谷歌';s Chrome扩展消息示例代码未定义响应,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,谷歌关于Chrome扩展开发的文档已经发布。我正在尝试示例代码: background.js chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) { console.log(response.farewell); }); }
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});
});
content_script.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
//return true;
});
它们不包括清单文件,所以我创建了一个(和三个图标):
{
“背景”:{
“坚持”:假,
“脚本”:[“background.js”,“content_script.js”]
},
“内容脚本”:[{
“js”:[“content_script.js”],
“matches”:[“addingreturn true;
。我试过了,但没什么不同(在上面的代码中,它被注释掉了)
有人能看到我是如何工作的吗?谢谢!我看不出你的内容脚本最终会被注入任何选项卡中-除非我遗漏了什么,否则你的清单中不应该有一个“内容脚本”
?或者在background.js中有一个chrome.tabs.executeScript
-内容脚本必须在里面"有些内容我在清单中确实有一个content\u scripts.js
。我是Chrome扩展的新手,所以我可能是错的,但我假设如果需要额外的代码,谷歌会将其包括在内。不,你在后台属性中有一个名为content\u script.js
的文件-content\u script.js
不是special name-也许您需要阅读更多关于manifest.json
在后台页面中包含名为content_script的文件没有任何意义。它不是实际的内容脚本,它在同一后台页面中运行,而不是在网页中运行,并且它不会接收来自同一后台页面上下文的消息。这就是为什么您会收到n未定义的值。继续阅读有关内容脚本的文档。我看不出您的内容脚本最终将如何注入任何选项卡-除非我遗漏了什么,否则您不应该有一个“内容脚本”吗
在您的清单中?或者是background.js中的chrome.tabs.executeScript
-内容脚本必须“进入”有些内容我在清单中确实有一个content\u scripts.js
。我是Chrome扩展的新手,所以我可能是错的,但我假设如果需要额外的代码,谷歌会将其包括在内。不,你在后台属性中有一个名为content\u script.js
的文件-content\u script.js
不是special name-也许您需要阅读更多关于manifest.json
在后台页面中包含名为content_script的文件没有任何意义。它不是实际的内容脚本,它在同一后台页面中运行,而不是在网页中运行,并且它不会接收来自同一后台页面上下文的消息。这就是为什么您会收到n未定义的值。继续阅读有关内容脚本的文档。
{
"background": {
"persistent": false,
"scripts": ["background.js", "content_script.js"]
},
"content_scripts": [ {
"js": ["content_script.js"],
"matches": ["<all_urls>"]
} ],
"description": "Test passing messages between a background script and a content script using Google's example code.",
"icons": {
"16": "img/icon_16x16.png",
"48": "img/icon_48x48.png",
"128": "img/icon_128x128.png"
},
"manifest_version": 2,
"name": "Test Google Chrome extension messaging",
"permissions": ["notifications"],
"version": "2017.8.25"
}