chrome扩展中,content-script与background.js之间的通信

helei 2020-9-9 1,937 9/9

background.js发消息给content-script

background.js发送

chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
    chrome.tabs.sendMessage(tabs[0].id, {message:"calculate"}, function(response) {
        if(typeof response !='undefined'){
            alert(response);
        }else{
            alert("response为空=>"+response);
        }
    });//end  sendMessage
}); /

content-script接收

chrome.extension.onMessage.addListener(
   function(request, sender, sendResponse) {
      alert("前端/后端/Popup收到");
      sendResponse("popup返回值");
   }
);

content-script发消息给background.js

content-script发送

Chrome提供的大部分API是不支持在content_scripts中运行

sendMessage onMessage 是可以使用

chrome.runtime.sendMessage({
  info: isShow
}, res => {
  // 答复
  // alert(res)
})

background.js接收

chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
  const res = req.info
  console.log(res)
})

background给popup发消息

// background.js中
function toPopup () {
  alert('to popup')
}

// popup.js中

const bg = chrome.extension.getBackgroundPage()
document.getElementById('btn').onclick = function () {
  bg.toPopup()
}

popup.html中

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <button id="btn">click</button>
    <script src="./popup.js"></script>
  </body>
</html>

- THE END -

helei

9月09日10:13

最后修改:2020年9月9日
0