Error: No window matching {"matchesHost":[]} for tabs.insertCSS()
Error: No window matching {"matchesHost":[]} for tabs.insertCSS()
我正在编写一个 WebExtension,其中后台脚本在弹出窗口 window(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);
并尝试 insertCSS()
,使用发送标签的 ID。
我总是收到 Error: No window matching {"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>"
],
我正在编写一个 WebExtension,其中后台脚本在弹出窗口 window(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);
并尝试 insertCSS()
,使用发送标签的 ID。
我总是收到 Error: No window matching {"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>"
],