我是chrome扩展的新手,我正在尝试将消息从后台脚本发送到内容脚本。但是它不断发送多封邮件,我不知道如何只发送一封邮件。
manifest.json
{
"name": "Example",
"version": "1.0",
"description": "Test Extension",
"manifest_version": 2,
"background": {
"scripts": ["jquery-3.4.1.min.js","background.js"],
"persistent": false
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"run_at": "document_start",
"js": ["jquery-3.4.1.min.js","popup.js"]
}
],
"browser_action": {
"default_popup": "popup.html",
"default_title": "Testing"
}
}
background.js
chrome.tabs.onUpdated.addListener(function(tabId,info, tab) {
if (info.status == "complete") {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
chrome.tabs.sendMessage(tab.id, {action: "test", message: "test"}
})
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
if (message.from == "message1") {
console.log(message)
}
})
});
popup.js
chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){
if(message.action == "test"){
chrome.runtime.sendMessage({from:"message1",message:message});
}
});
输出:
{from: "message1", message: {…}}
{from: "message1", message: {…}}
{from: "message1", message: {…}}
{from: "message1", message: {…}}
{from: "message1", message: {…}}
{from: "message1", message: {…}}
{from: "message1", message: {…}}