0
我一直在试验铬扩展API,我注意到chrome.tabs.sendMessage
没有通过tabId
作为sender
,但另一个id/
哈希字符串doesn' t对应于tabId
。任何人知道这是为什么?谢谢。chrome.tabs.sendMessage不通过tabId发件人
https://developer.chrome.com/extensions/tabs#method-sendMessage
这里是我运行代码:
清单
"permissions": [
"activeTab",
"tabs"
]
event.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {file: "content-script.js"});
sendMessageToContent;
});
function sendMessageToContent() {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello", tab: tabs[0].id}, function(response) {
});
});
}
内容的script.js
console.log('script injected');
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.debug('tab', request.tab);
console.debug('sender', sender);
});
结果:
tab 1487
sender { id: "ldolkkbojegiehpmacmglfdlndkhlace" }
是的,你绝对正确。 Sender.id包含当前背景页面的ID:'chrome-extension:// ldolkkbojegiehpmacmglfdlndkhlace/_generated_background_page.html' 我认为传递tabId会改变消息的来源是我的错误。谢谢。 – holmberd