【问题标题】:How can I log messages in content script of firefox extension?如何在 Firefox 扩展的内容脚本中记录消息?
【发布时间】:2022-01-20 16:02:30
【问题描述】:

我是 Firefox 扩展(附加)开发的新手。我正在使用browser.tabs.executeScript() API 通过我的侧边栏代码隐藏注入内容脚本。我使用web-ext run 命令运行我的扩展程序。

问题是,我的日志没有出现在开发者控制台中,当我进入工具控制台时,我可以看到以下错误:

Error: Missing host permission for the tab

Mozilla 通过页面 URL 的模式匹配定义了一个 host permission。当然,将以下内容添加到我的manifest.json 文件可以解决问题:

"content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content-script.js"]
    }
  ]

但我想按需注入内容脚本,而不是基于页面 URL。

另一种方法是通过 API 将消息发送到我的侧边栏代码隐藏,然后将其记录在我的扩展控制台中。但这需要一些实现。另一方面,这让我想为什么我不能通过注入的脚本简单地将消息记录到开发者控制台?

这是我的代码:

manifest.json:

{
    "manifest_version": 2,
    "name":"My Extension",
    "version":"1.0",
    "sidebar_action":{
        "default_title": "My sidebar",
        "default_panel": "sidebar/panel.html"
    },
    "permissions":[]
}

panel.js:

browser.tabs.executeScript({ file: "content-script.js" });

content-script.js:

console.log('first line of content script');

【问题讨论】:

    标签: debugging logging firefox content-script


    【解决方案1】:

    我找到了。术语&lt;all_urls&gt; 可以用作权限:

    "permissions":["<all_urls>"]
    

    然后console.log() 在内容脚本中工作。

    但是不建议包含这个权限:Avoid host permission "<all_urls>" if you can

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多