能够在Firefox中加载init脚本吗?

时间:2016-06-24 13:34:58

标签: firefox xul

我很长时间以将Conkeror作为我的默认网络浏览器,并习惯使用js代码配置/添加新功能到我的浏览器,所有的XUL Api都通过.conkerorrc文件。我正在迁移到Firefox,因为它有更好的支持,并且由Mozilla积极维护。然而,我一直缺少的功能之一是点文件,我可以轻松配置我喜欢的任何东西,通过git备份所有这些,并在我编码的同时直接评估代码(使用Mozrepl)看到结果。

我有没有办法在Firefox启动时注入/执行一个sciprt,例如~/.firefox/index.js

1 个答案:

答案 0 :(得分:1)

Firefox中没有功能可以执行用户在启动时提供的JavaScript代码。像这样的功能一直是requested of Firefox since 2006-04-02

在任何不同的Firefox加载项类型(XUL/OverlayRestartless/BootstrapAdd-on SDKWebExtensions)中编写加载项都是微不足道的在Firefox启动时运行您想要的任何JavaScript。这可以用于运行附加组件中包含的代码(简单),或者运行从附加组件外部加载的文件中包含的JavaScript(更复杂)。您用于实现此功能的加载项类型会影响您编写的代码中可用的接口。编写自己的扩展程序(运行附加程序中包含的代码)的一个缺点是,为了将它与版本一起使用,或者测试版的Firefox是你需要拥有它signed by Mozilla。虽然这是一个快速简便的过程,但它确实为开发/测试周期增加了一些额外的开销。

您未在问题中指定任何firefox-addon标记。此外,除了通用性之外,您还没有描述所需的功能。您的问题似乎也不是要问您如何实现这样的附加组件。考虑到这些以及已经有多个附加组件实现运行用户提供的任意JavaScript(包括XUL)代码的功能这一事实,我不打算在这里提供执行此功能的代码。

但是,如果您对使用现有的附加组件感兴趣,可以选择以下几种方法:

  • userChromeJS:此扩展程序源自最初提供的代码,作为如何实现bug 332529中请求的功能的示例。它列出的第一个功能是:"可以通过运行自定义javascript代码或使用.xul覆盖覆盖chrome来实现完整的Chrome自定义。"这是一个基于Overlay的附加组件,您可以使用它来使用XUL。这听起来像你有兴趣获得的功能。
  • uc:"具有内置下标/重叠加载器功能的userChromeJS克隆。"
  • Greasemonkey:"使用少量JavaScript自定义网页显示或行为的方式。"这是一个常用的附加组件,允许编写更复杂的JavaScript代码。代码为executed in a sandbox,不在扩展名范围内。出于安全原因,这样做了。
  • Custom Style Script (Inject desired CSS or JS):"将自定义JavaScript代码或样式(CSS)添加到特定页面或所有页面。"