1
我正在開發Javascript庫的擴展(調試器)。初始結果很好,我遇到了一個錯誤(不知道它是否有錯誤)。問題是:「當一個代碼運行多個標籤時(對於每個標籤,開發工具也是開放的),開發工具從所有打開的標籤中接收消息,但事實並非如此。如何防止它發生?建議將是巨大的幫助。讓我知道如果我需要把相關的任何其他文件中的代碼。在Chrome中開發調試器
//部分的manifest.json
{
"manifest_version": 2,
"name": "debugger",
"version": "1.0",
"description": "some",
"author": "some",
"devtools_page": "devtools.html",
"background": {
"scripts": [
"background.js"
]
},
"permissions": [
"tabs",
"storage",
"<all_urls>"
]
}
的//內容的script.js
chrome.extension.sendMessage(message, function (message) {
console.log("message sent");
});
chrome.extension.onMessage.addListener(function (msg, sender, sendResponse) {
if (msg.action == 'debug') {
console.log("Message: " + msg.content);
}
});
// Background.js
chrome.extension.onConnect.addListener(function (port) {
var extensionListener = function (message, sender, sendResponse) {
if (message.destination == "panel") {
port.postMessage(message);
// chrome.tabs.sendMessage(sender.tab.id, message, sendResponse);
}
});
// panel.js
var port = chrome.extension.connect({
name: "my-extension"
});
port.onMessage.addListener(function (message) {
// do something with message
});
您可以顯示您用於消息傳遞的代碼嗎? – wOxxOm
在您的代碼中,根據['sender'](https://developer.chrome.com/extensions/runtime#type-MessageSender)過濾消息。 – Makyen
@Makyen你能給我舉個例子嗎? – stafan