Helo,这个用于chrome扩展的javascript,如何从内容js获取值background.js的值。
{
"manifest_version":2,
"permissions": [
"storage",
"activeTab",
"contextMenus"
],
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["jquery.js","content.js"],
"css": ["style.css"]
}...
"background": {
"persistent": false,
"scripts": ["background.js"]
}
}
那是我的json文件,我有问题这个和我的background.js
chrome.contextMenus.removeAll(function() {
chrome.contextMenus.create({
id: "right_down",
title: "Grab-Image to Content Creator",
contexts: ["image"],
onclick: cow
});
});
var cow = chrome.contextMenus.onClicked.addListener(function(info,tab) {
// return
cow = info['srcUrl'];// i want Displays "url image" and proces it to content.js.
console.log(url);
});
这对于content.js
chrome.runtime.getBackgroundPage(function (backgroundPage) {
console.log(backgroundPage.cow); //get value url image
});
我运行它但没有得到任何东西,如何获得返回表格背景到其他文件?
在你的background.js中,你可以像下面这样使用chrome.tabs.sendMessage
:
chrome.contextMenus.onClicked.addListener((info, tab) => {
chrome.tabs.sendMessage(tab.id, {
url: info['srcUrl'],
});
});
它会将对象数据(包含您的url)发送到给定的选项卡(由tab.id指定)。您可以通过循环发送到所有选项卡。
在内容脚本中,您可以通过以下方式从后台接收数据:
chrome.runtime.onMessage.addListener((request) => {
let {
data,
} = request;
console.log(data);
});