Chrome扩展程序在一个页面上多次触发

时间:2015-06-12 11:45:10

标签: javascript google-chrome google-chrome-extension

我试图围绕这些扩展如何工作。现在我正在从内容脚本向后台发送消息。我尝试了单个消息和长期连接。对于每个页面,控制台注册多个日志......我不知道为什么。脚本很简单:

content.js

chrome.runtime.sendMessage({hi: "hi"}, function(response) {});
//or
//var port = chrome.runtime.connect({name: "test"});
//port.postMessage({hi: "hi"});

background.js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    console.log(sender.tab);
    console.log(request.hi);
});
//OR
/*chrome.runtime.onConnect.addListener(function(port) {
    port.onMessage.addListener(function(msg) {
        console.log(msg);
    });
});*/

的manifest.json

"background": {
    "scripts": ["background.js"],
    "persistent": false
},
"content_scripts": [{
    "matches": ["http://*/*", "https://*/*"],
    "js": ["content.js"],
    "run_at": "document_end",
    "all_frames": true
}],
"permissions": [
    "tabs",
    "<all_urls>"
]

在每种情况下,就像我说的,我在后台页面中得到三个日志。为什么?我认为这可能是由于我打开的标签数量,但是日志显示了发件人信息,它表示它来自同一个标签。

更多:当我刷新此问题时,我只获得一个日志条目(每个块一个条目,如第一个注释中所示)。当我刷新谷歌搜索结果或Google扩展程序API页面时,我会收到多个日志。

0 个答案:

没有答案