Javascript 从“发送变量”;浏览器“行动”;至;内容“脚本”;
我对制作Chrome扩展非常陌生,我会尝试一些东西: 我将把JS变量从“浏览器动作”发送到“内容脚本”Javascript 从“发送变量”;浏览器“行动”;至;内容“脚本”;,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我对制作Chrome扩展非常陌生,我会尝试一些东西: 我将把JS变量从“浏览器动作”发送到“内容脚本” 如何将MyVar发送到src/inject/inject.js?像 // What function I should do before to alert()? if (typeof MyVar !== 'undefined') { alert(MyVar); } 如果要将消息(或数据)从后台发送到内容脚本,可以使用。但您需要指定将其发送到哪个选项卡(使用tabId)。你应该读书
如何将
MyVar
发送到src/inject/inject.js?像
// What function I should do before to alert()?
if (typeof MyVar !== 'undefined') {
alert(MyVar);
}
如果要将消息(或数据)从后台发送到内容脚本,可以使用。但您需要指定将其发送到哪个选项卡(使用
tabId
)。你应该读书
示例:
向所选选项卡中的内容脚本发送消息
main.js
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});
});
在接收端,您需要设置一个事件侦听器来处理消息
inject.js:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
});
我用
chrome.storage
示例:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
});
在manifest.json上添加“存储”权限
"permissions": [
"storage"
]
main.js上的(浏览器操作)
inject.js上的(内容脚本)
谢谢但是如何在不打开“浏览器”的情况下获取
消息
?可能?使用背景脚本:
"permissions": [
"storage"
]
chrome.storage.sync.set({'user':{email:'hello@world.com'}});
chrome.storage.onChanged.addListener(function(c,a){
chrome.storage.sync.get('user',function(o){
if(!$.isEmptyObject(o)){ // Check via jQuery function
// Do somethings...
console.log(o.user.email);
}
});
});