gInitialPages 未定义自举扩展

gInitialPages is not defined bootstrapped extensions

我正在开发覆盖新标签页的 Firefox 扩展,我需要从地址栏中隐藏我的页面 URL。我使用此代码:

if (gInitialPages.indexOf(NEW_TAB_URL)===-1)  gInitialPages.push(NEW_TAB_URL);

它在 XUL 覆盖代码中工作正常,但是当我尝试使我的应用程序无需重新启动并将此代码移至 bootstrap.js:

时出现错误

gInitialPages is not defined

那么,如何在自举扩展中使用 gInitialPages(或类似的东西)?

Bootstrapped/restartless 扩展不会在 (a) window(s) 的上下文中自动 运行。 bootstrap.js 运行s 在自己的上下文中,每个应用程序实例只有一次,而不是在浏览器中 window。

您需要:

  • 手动枚举所有现有浏览器windows。
  • 在新浏览器打开时监听 windows。

然后操作那些windows中的变量。

请参阅 Mardak's example 了解如何做到这一点,特别是 watchWindowsunload