Firefox插件。我将现有的插件移植到无重启的插件上。我有一个面板,里面有很多UI元素(主要是盒子/描述和图像),在XUL覆盖文件中定义面板元素非常方便。如果我没有,我会有很多臃肿的js代码。
面板元素(父元素)本身是在代码中动态创建的,然后我使用loadOverlay
,等待合并' event,然后从叠加的文档中追加面板元素的子元素。我还确保在删除后清理元素。
但是,使用叠加层很可能无法通过AMO审核。我认为的一些原因是:
- 在大多数情况下,叠加元素会在移除时导致问题(例如:工具栏按钮记住其位置等)。
- 在覆盖文件中附加js / css文件时出现问题。
- loadOverlay错误(496320,330458)
以下是我的推论:
- loadOverlay()API本身并未弃用 - 实际上它是' not frozen and may change later' - 这意味着将来可能会有用。
- 第二次重叠加载失败的错误在我的情况下不适用,因为我没有覆盖合并进行初始化。
- 到目前为止,首选使用静态叠加层作为首选项窗口等。
- 在我的情况下,面板的行为很像偏好窗口(根据需要显示并在删除插件时清理)
- 我没有附加到叠加层的任何js / css,也没有关于元素的任何事件监听器。叠加层仅用于定义框和描述文本 - 仅此而已。
因此,考虑到这些,对于无重启的插件使用叠加和loadOverlay()是否可以接受?如果没有,还有其他选择吗?