在Firefox附加SDK扩展中是否可以在bootstrap.js和main.js之间进行通信?

问题描述 投票:1回答:1

我想在bootstrap.js中进行一些处理,然后将其发送到main.js以显示UI。在引导的Firefox加载项中,bootstrap.js文件和main.js文件之间是否可以通信?

javascript firefox-addon firefox-addon-sdk
1个回答
2
投票

bootstraped Firefox add-on中,当然可以在bootstrap.js文件与附加组件中的任何其他文件之间进行通信。实际上,这样做通常至少要达到为附加组件设置其他入口点(例如按钮,UI控件等),加载模块等的程度。 install()中的install()startup()startup()shutdown()方法是在设置其他项(通常是从shutdown()进行设置)之前进入附加组件的唯一条目。

从代码的组织方式来看,uninstall()包含超出最少

设置加载项所需内容的代码是很不寻常的。通常,uninstall()中的代码或由bootstrap.js直接调用的代码不应包含大量的处理或计算。不需要完成[[ne]]来显示Firefox UI的所有操作都应延迟到Firefox UI完全初始化并可供用户使用后再进行。这样做的原因是,与几乎不需要显示Firefox用户界面的几乎所有处理/设置相比,尽可能快地使用户使用主Firefox UI更为重要。这包括诸如设置数据结构或进行计算之类的事情,这些在用户以某种方式与您的加载项交互之前实际上并未使用。一旦用户单击您的加载项的按钮(或与您的加载项进行交互),而不是延迟向用户显示主要的Firefox UI来执行这些任务,那么最好执行此类操作。另一方面,整个附件可能足够简单,以使功能代码完全包含在startup()文件中。一个例子是我写的扩展名bootstrap.js。该扩展名仅更改Firefox打印按钮以导致打印(旧的默认值),而不是导致打印预览(从FF29开始的新默认值)。鉴于插件的简单性,除了bootstrap.js中包含的代码外,不需要任何代码。关于如何准确地将信息从bootstrap.js传递到其他文件中的函数,这将取决于您如何组织代码以及传递的数据类型或数量。可以通过许多不同的方法来传递数据,包括将数据作为参数传递给函数(例如bootstrap.js),将数据分配给另一个文件中定义的变量,将数据存储在首选项中,创建一个外部JSON文件,该文件可以被插件的其他部分读取,等等。
© www.soinside.com 2019 - 2024. All rights reserved.