5

我对这么多不同的方法、指南感到不知所措,但我没有一个尝试为我工作。请为我连接至少一些点...

我的目标是在 Firefox WebExtension 的后台脚本中找到一个窗口对象。

问题,我无法导入Services库来使用它来查找window对象。

我尝试了两种方法:

  1. Components.utils.import("resource://gre/modules/Services.jsm");给出一个被贬低的警告Components,并且一个错误:Components.utils未定义。
  2. const { Cu } = require("chrome"); let Services = Cu.import("resource://gre/modules/Services.jsm");引发require未定义的错误。

那是一个后台脚本,为我指明正确的方向,如何导入我需要使用的正确库/接口?

4

1 回答 1

7

插件的MDN 顶级页面用于概述不同的扩展类型(因为 FF57 仅支持 web 扩展)。

Components.utils.import

这适用于无重启/XUL(旧版)扩展。

常量 { 铜 } = 要求(“铬”);

这适用于 SDK 扩展。

两者都不适用于网络扩展。

与其他扩展类型不同,webextensions 具有限制性,它们不提供对您可以在整个 wiki 中找到的低级 API 的访问。

因此,当您查找与此扩展类型相关的文档时,请坚持使用webextensions 层次结构或标准 Web API下的页面。

于 2016-03-31T17:09:32.260 回答