Javascript 从“发送变量”;浏览器“行动”;至;内容“脚本”;

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)。你应该读书

我对制作Chrome扩展非常陌生,我会尝试一些东西:

我将把JS变量从“浏览器动作”发送到“内容脚本”


如何将
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);
      }
   });
});