gpt4 book ai didi

javascript - 错误 : No window matching {"matchesHost":[]} for tabs. insertCSS()

转载 作者:行者123 更新时间:2023-12-03 05:01:22 25 4
gpt4 key购买 nike

我正在编写一个 WebExtension,其中后台脚本在弹出窗口(UI 脚本)和网页(内容脚本)之间进行通信。

使用port = browser.runtime.connect({name: "ProjName"});,内容脚本在加载后立即连接到后台脚本。

后台脚本注册:

function connected(p) {
...
console.log(p.sender.tab.id); // <-- works fine, gives me an integer Tab ID
browser.tabs.insertCSS(p.sender.tab.id, {file : "/css/stylesheetName.css"});
...
}

browser.runtime.onConnect.addListener(connected);

并尝试使用发送选项卡的 ID 来insertCSS()

我总是收到错误:没有匹配 {"matchesHost":[]} 的窗口消息。我不确定这里发生了什么,我不确定脚本的哪一部分现在与主机匹配......?!?

我可以在完全相同的地方使用 browser.tabs.sendMessage(p.sender.tab.id, msg); 就可以了。天哪,如果我知道如何可靠地从磁盘读取文件,我会在此时通过 sendMessage 发送其内容。

这可能来自哪里?

编辑:我已将其精简为仅必要的代码(并且没有 page_Action、没有弹出窗口等)并上传了 .zip:[已删除]您可以在 Firefox about:debugging 页面上加载为临时加载项

最佳答案

我花了很多时间针对 Chrome 调整它并查看那里的背景页面......虽然我在 Firefox 中启用了扩展日志记录,但它没有给我我需要的东西,但 Chrome 做到了:这是另一个缺少的权限

Unchecked runtime.lastError while running tabs.insertCSS: Cannot access contents of url "[url]". Extension manifest must request permission to access this host.

添加"<all_urls>"manifest.json 中的权限成功了:

"permissions": [
"activeTab",
"tabs",
"storage",
"<all_urls>"
],

关于javascript - 错误 : No window matching {"matchesHost":[]} for tabs. insertCSS(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42212014/

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