Google chrome extension Chrome扩展消息从弹出窗口传递到内容
我正试图创建一个chrome扩展来学习前端技术,但在弹出窗口和内容脚本之间的消息传递上遇到了问题 以下是我试图做的: 1.让背景页保存一个全局变量。 2.当用户单击弹出html上的按钮时,将修改全局变量。同时,弹出窗口将全局变量发送到所有选项卡的内容脚本 在background.js中,我有:Google chrome extension Chrome扩展消息从弹出窗口传递到内容,google-chrome-extension,callback,Google Chrome Extension,Callback,我正试图创建一个chrome扩展来学习前端技术,但在弹出窗口和内容脚本之间的消息传递上遇到了问题 以下是我试图做的: 1.让背景页保存一个全局变量。 2.当用户单击弹出html上的按钮时,将修改全局变量。同时,弹出窗口将全局变量发送到所有选项卡的内容脚本 在background.js中,我有: var settings = { version: 1, enabled: false }; popup.js: $(document).ready(function(){ $(
var settings = {
version: 1,
enabled: false
};
popup.js:
$(document).ready(function(){
$("#switcher").click(function( event ) {
event.preventDefault();
var bg = chrome.extension.getBackgroundPage();
var settings = bg.settings;
settings.enabled = !settings.enabled;
// send message to the content for all the tabs
chrome.tabs.query({active: true}, function (tabs) {
for (var i = 0; i < tabs.length; ++i) {
console.log("sending message to tab " + i);
chrome.runtime.sendMessage(tabs[i].id, {enabled: settings.enabled}, function(response) {
console.log(response);
});
}
});
});
});
我试图调试它,但发现“sendMessage”函数从未返回。。“onMessage”从未被触发过。我错过什么了吗
我的清单文件:
{
"name": "__MSG_appName__",
"version": "0.0.1",
"manifest_version": 2,
"description": "__MSG_appDescription__",
"icons": {
"16": "images/icon-16.png",
"128": "images/icon-128.png"
},
"default_locale": "en",
"permissions": [
"contextMenus", "storage", "tabs"
],
"background": {
"scripts": [
"scripts/background.js"
],
"persistent": true
},
"browser_action": {
"default_icon": {
"19": "images/icon-19.png",
"38": "images/icon-38.png"
},
"default_popup": "popup.html"
},
"content_scripts": [
{
"run_at":"document_start",
"all_frames":true,
"matches": ["*://*/*"],
"js": ["bower_components/jquery/dist/jquery.min.js", "scripts/content.js"]
}
],
"web_accessible_resources": ["bower_components/jquery/dist/jquery.min.map"]
}
您应该使用而不是将消息发送到选项卡中的内容脚本。供将来参考:您应该右键单击扩展按钮并选择“检查弹出窗口”以尝试调试。
{
"name": "__MSG_appName__",
"version": "0.0.1",
"manifest_version": 2,
"description": "__MSG_appDescription__",
"icons": {
"16": "images/icon-16.png",
"128": "images/icon-128.png"
},
"default_locale": "en",
"permissions": [
"contextMenus", "storage", "tabs"
],
"background": {
"scripts": [
"scripts/background.js"
],
"persistent": true
},
"browser_action": {
"default_icon": {
"19": "images/icon-19.png",
"38": "images/icon-38.png"
},
"default_popup": "popup.html"
},
"content_scripts": [
{
"run_at":"document_start",
"all_frames":true,
"matches": ["*://*/*"],
"js": ["bower_components/jquery/dist/jquery.min.js", "scripts/content.js"]
}
],
"web_accessible_resources": ["bower_components/jquery/dist/jquery.min.map"]
}