在chrome中弹出窗口和内容脚本之间进行通信

Communicate between popup and content script in chrome

本文关键字:脚本 之间 通信 chrome 窗口      更新时间:2023-09-26

我试图建立一个chrome扩展,但我不能从弹出到内容脚本发送消息。请告诉我问题出在哪里。

弹出脚本代码:

         $(document).ready(function(){ 
            $('#button').click(function(){
              chrome.tabs.query({active: true, currentWindow: true},function(tabs) {
                     chrome.tabs.sendMessage(tabs[0].id, {message: "hello"});
        });
    });
});

内容脚本代码:

chrome.extension.onMessage.addListener(
 function(request, sender) {
  alert("Contentscript has received a message from from background script: '" + request.message + "'");
  });

这是明显的。json:

{
  "manifest_version" : 2,
  "name" : "First My Chrome Extension",
  "version" : "0.0.1",
  "description" : "The first web-app using chrome extension technology",
  "icons" : {
    "16" : "images/icon16px.png",
    "48" : "images/icon48px.png",
    "128" : "images/icon128px.png"
  },

 "background": {
    "scripts": ["scripts/background.js"]
  },

  "browser_action" :{
    "default_icon":{
      "48" : "images/icon48px.png"
    },
    "default_title" : "Nghoangvutn",
    "default_popup" : "popup.html"
  },
  "content_scripts":[
  {
    "matches":[
      "<all_urls>"
      ],
    "js" : [
      "scripts/jquery.js",
      "scripts/content.js"
      ]
  }
    ],
  "permissions" : [
    "tabs",
    "storage"
    ]
}

内容脚本代码应更新为使用以下方法chrome.runtime.onMessage.addListener。注意从chrome.extensionchrome.runtime的变化。

chrome.runtime.onMessage.addListener(
 function(request, sender) {
   alert("Contentscript has received a message from from background script: '" + request.message + "'");
});