【问题标题】:Ability to load init script in Firefox?能够在 Firefox 中加载初始化脚本吗?
【发布时间】:2016-06-24 13:34:57
【问题描述】:

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

有什么方法可以在 Firefox 启动时注入/执行 sciprt,例如 ~/.firefox/index.js

【问题讨论】:

    标签: javascript firefox xul


    【解决方案1】:

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

    在任何不同的 Firefox 插件类型(XUL/OverlayRestartless/BootstrapAdd-on SDKAdd-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) 添加到特定页面或所有页面。”

    【讨论】:

    • 是的,这就是我要找的。我之前尝试过编写一个简单的插件,它似乎工作正常。但是,Firefox 甚至会缓存插件外部的代码,所以我必须在每次 Firefox 启动时应用一些技巧来清除缓存,但这会减慢整个 Firefox 的启动速度。我只想清除该插件的缓存。让我检查一下 userChromeJS 和 uc。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多