在Chrome扩展程序中将消息从后台发送到内容脚本

时间:2016-07-20 06:43:46

标签: javascript google-chrome-extension

这是我的popUp.js。

window.onload = function() {
    chrome.extension.sendMessage({
         type: "login-check"
     });
};

那是我的背景脚本。

chrome.runtime.onMessage.addListener(
 function(request, sender, sendResponse) {
  switch(request.type){
    case "login-check":
     checkLogin();
    break;
  }
});

function checkLogin() {
 chrome.tabs.query({active: true, currentWindow: true}, function(tabs){ 
  chrome.tabs.sendMessage(tabs[0].id, {type: "login"}, function(response){
   console.log(response.farewell)
  }); 
 });
}

那是我的内容脚本。

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if (request.type == "login")
     sendResponse({farewell: "goodbye"});
});

我的消息是从popUp.js发送到background.js但不是从后台发送到内容脚本,显示错误"事件处理程序中的错误(未知):TypeError:无法读取属性'告别'未定义的 "请回答这个问题我是Chrome扩展程序开发的新手,请不要将链接发送给其他人我已经在堆栈溢出中实现了所有可能的答案。 提前致谢。 那是我的Manifest.json

{
  "manifest_version": 2,

  "name": "Time Tracking Extension",
  "description": "This Extension is for Time Tracking",
  "version": "2.1",
  "browser_action": {
   "default_icon": "logo.png",
   "default_popup": "popUp.html"
  },
  "permissions": ["storage", "tabs", "cookies"],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "content_scripts": [
      {
          "matches": ["<all_urls>"],
          "css": ["css/mystyles.css", "css/jquery-ui.css", "css/bootstrap.min.css"],
          "js": ["js/jquery.min.js", "js/jquery-ui.js", "js/bootstrap.min.js", "js/content-script.js"]
      }
  ]
}

0 个答案:

没有答案