gpt4 book ai didi

javascript - chrome.tabs.sendMessage 不会将 tabId 传递给发件人

转载 作者:行者123 更新时间:2023-11-30 15:34:23 27 4
gpt4 key购买 nike

我一直在试验 chrome 扩展 API,我注意到 chrome.tabs.sendMessage 没有将 tabId 作为 发件人传递 但另一个 id/ 哈希字符串与 tabId 不对应。有谁知道这是为什么?谢谢。

https://developer.chrome.com/extensions/tabs#method-sendMessage

这是我正在运行的代码:

list

  "permissions": [
"activeTab",
"tabs"
]

事件.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) {
});
});
}

content-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" }

最佳答案

参见 chrome.runtime API docs : sender.tab 和因此 sender.tab.id 仅当消息是从普通选项卡发送时才存在,但您是从扩展弹出窗口发送的,它是separate extension page ,不是标签。因此 sender 包含您自己的扩展的 id

关于javascript - chrome.tabs.sendMessage 不会将 tabId 传递给发件人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41793113/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com