Dom 在无重启插件中使用loadOverlay()可以吗?

Dom 在无重启插件中使用loadOverlay()可以吗?,dom,firefox-addon,xul,firefox-addon-restartless,Dom,Firefox Addon,Xul,Firefox Addon Restartless,Firefox插件。我正在将一个现有的插件移植到一个无重启的插件。我有一个包含很多UI元素(主要是框/描述和图像)的面板,在XUL覆盖文件中定义面板元素对我来说非常方便。如果我不这样做,我会有很多臃肿的js代码 面板元素(父元素)本身是在代码中动态创建的,然后我使用loadOverlay,等待“merged”事件,然后从覆盖的文档中附加面板元素的子元素。我还确保元素在移除后被清理干净 然而,使用覆盖层很可能无法通过AMO审查。我认为其中的一些原因是: 在大多数情况下,覆盖元素在删除时会导致问题

Firefox插件。我正在将一个现有的插件移植到一个无重启的插件。我有一个包含很多UI元素(主要是框/描述和图像)的面板,在XUL覆盖文件中定义面板元素对我来说非常方便。如果我不这样做,我会有很多臃肿的js代码

面板元素(父元素)本身是在代码中动态创建的,然后我使用
loadOverlay
,等待“merged”事件,然后从覆盖的文档中附加面板元素的子元素。我还确保元素在移除后被清理干净

然而,使用覆盖层很可能无法通过AMO审查。我认为其中的一些原因是:

  • 在大多数情况下,覆盖元素在删除时会导致问题(例如:工具栏按钮记住它们的位置等)
  • 在覆盖文件中附加js/css文件存在问题
  • loadOverlay有问题(,)
以下是我的推论:

  • loadOverlay()API本身并没有被弃用,事实上它是“”,这意味着它将来可能会被使用
  • 第二次覆盖加载失败的错误在我的情况下不适用,因为没有覆盖合并我不会初始化
  • 从现在起,对首选窗口等使用静态覆盖是完全可以接受的
  • 在我的例子中,面板的行为非常类似于首选项窗口(根据需要打开,并在删除插件时清理)
  • 我没有任何js/css附加到覆盖,也没有任何元素的事件侦听器。覆盖仅用于定义框和描述文本-仅此而已

考虑到这些,对无重启插件使用overlays和loadOverlay()是否可以接受?如果没有,还有其他选择吗?

关于overlays,通过检查扩展现有加载项的无重启加载项的源代码(如),我看到overlay.xul自动与现有加载项合并。所以使用overlay应该不会有问题。

这是关于
loadOverlay
的好信息,我希望有人能帮助你,这不是我的专长。嗨,谢谢。使用覆盖是允许的首选项窗口等。我也相信他们是好的,只要他们被清理'正确'在一个无重启的方式。但我从amo编辑和extdev频道得到的回复中并不推荐它们。由于存在错误,尤其不建议使用
loadOverlay
。我最终用js重写了整个UI。我真的很想知道除了用js编写整个UI之外,还有其他选择吗。