1
我正在创建我的第二个Firefox插件,并且我注意到当创建另一个窗口时,我的插件的另一个实例也被创建。这是因为我把我的主要JavaScript放在了一个覆盖层中,当我不应该的时候?什么是正确的方法来做到这一点?对于每个Firefox窗口,我的插件的另一个实例是否会创建正常行为?
我正在创建我的第二个Firefox插件,并且我注意到当创建另一个窗口时,我的插件的另一个实例也被创建。这是因为我把我的主要JavaScript放在了一个覆盖层中,当我不应该的时候?什么是正确的方法来做到这一点?对于每个Firefox窗口,我的插件的另一个实例是否会创建正常行为?
这是正常的行为,是的,这是因为你使用/加载代码在一个覆盖。 Afaik无论如何都是初始化插件的唯一方式(也许现在还有其他方法可以使用Add-on SDK)。
为了在窗口之间共享状态,您必须使用JavaScript code modules。
如果你刚开始使用附加组件,我真的建议你看看新的SDK。它应该使开发更简单。
这不是唯一的方法,附加组件也可以定义一个XPCOM组件,它将在浏览器启动时初始化。尽管如此,使用覆盖和加载JS模块更简单。 –