browser_action popup插件的交互界面
content_scripts 嵌入到用户页面的js
permissions 表示在哪些网页生效
background 运行在后台的程序,可联系popup和content之间数据传递
background 插件开始就会运行
popup 点开插件才会执行
background和popup可以使用locastorage来存储数据
background初始化时不能主动发给content,
一般是content先发消息,然后background监听消息,然后再发送消息给content
content或popup发给background:
chrome.runtime.sendMessage({},function(response){
})
background向content发送消息:
chrome.tabs.query({active:true,currentWindow:true},function(tabs){
chrome.tabs.sendMessage(tabs[0].id,{},function(response){
})
})
监听消息,content和background都可用:
chrome.runtime.onMessage.addListener((request,sender,sendResponse)=>{
sendResponse({})
})
长连接(三端都可用):
var port=chrome.runtime.connect({name:'portName'})
port.sendMessage({})
port.onMessage.addListener(function(msg){
})
接收端(一般是在background和content使用):
chrome.runtime.onConnect.addListener(function(port){
port.onMessage.addListener(function(msg){
})
})
background向content建立长链接:
结合chrome.tabs.query()获取tabId然后建立长连接
let port=chrome.tabs.connect(tabId,{name:'portName'})