Javascript 内容脚本不';t与后台脚本通信-chrome扩展

Javascript 内容脚本不';t与后台脚本通信-chrome扩展,javascript,google-chrome-extension,background,manifest,chrome-extension-manifest-v2,Javascript,Google Chrome Extension,Background,Manifest,Chrome Extension Manifest V2,我正在尝试将新选项卡URL从background.js发送到content.js。.sendMessage()执行,但无法访问content.js background.js: chrome.tabs.onUpdated.addListener( 函数(tabId、changeInfo、tab){ if(changeInfo.url){ chrome.tabs.sendMessage(tabId{ url:changeInfo.url }) } } ); 默认情况下,内容脚本在DOMConten

我正在尝试将新选项卡URL从background.js发送到content.js。.sendMessage()执行,但无法访问content.js

background.js:
chrome.tabs.onUpdated.addListener(
函数(tabId、changeInfo、tab){
if(changeInfo.url){
chrome.tabs.sendMessage(tabId{
url:changeInfo.url
})
}
}
);
  • 默认情况下,内容脚本在DOMContentLoaded()之后运行,但当选项卡开始加载时,即在内容脚本运行之前,会将URL报告给onUpdated

    解决方案是添加一个复选框来跳过第一次更新,因为它不需要:内容脚本的一个实例在每个匹配的网页中运行,并且它已经知道其页面的
    location.href

    if(changeInfo.url&&tab.status=='complete'){
    
  • 在上重新加载扩展之后chrome://extensions 页面(或从网络商店更新),其所有内容脚本都被“孤立”,无法接收消息

    解决办法是