1
私はJavascriptライブラリ用の拡張機能(デバッガ)の開発に取り組んでいます。初期の結果は問題なく、1つのバグを見つけました(そのバグがあるかどうかはわかりません)。問題は「コードが複数のタブを開いているとき(それぞれdev-toolsも開いているとき)、dev-toolsは開いているすべてのタブからメッセージを受け取りますが、そうではありません。提案は大きな助けになります。私は他のファイルに関連するコードを配置する必要があるなら、私に教えてください。クロムでデバッガを開発する
// 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);
}
});
//バックグラウンドメッセージリスナーからあなたのケースオブジェクトsender
で
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