在发送方:即来自contentcript。
contentscript.js:
<script>
//some DOM code to obtain values to store in 'marks' array.
//here I'm sending marks array to background.js.
// 1) Am I sending it right?
chrome.runtime.sendMessage(marks);
</script>
接收端:即后台脚本。*
background.js:
chrome.runtime.onMessage.addListener(function(MessageSender sender, function
sendResponse){
/* 2) what should be here */ });
3)在这里,我如何收集(存储)从contentscript传递的数组变量。
4)现在,从background.js可以直接调用popup.js中的任何函数(脚本文件
链接到popup.html)。
有人可以回答上述4个问题吗? 提前谢谢!
检查我的弹出窗口,给了我以下错误:
答案 0 :(得分:3)
添加存储权限
"permissions": ["storage"]
contentcript.js中的
将您的数据保存在本地存储空间Google Chrome中:Chrome Storage API
var data = ''; //set your data here
chrome.storage.local.set({
'myVariable': data
});
使用sendMessage调用后台页面:Chrome messaging API
chrome.runtime.sendMessage({
greeting: "myAction"
});
从contentscript.js
获取消息chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
if (request.greeting == "myAction") {
collectData();
}
});
定义collectData()函数
function collectData() {
chrome.storage.local.get('myVariable', function (items) {
console.log(items); //your data is on items.myVariable
});
}
从background.js调用popup.js函数使用消息传递API