2010-11-30 85 views
5

我正在创建一个需要用户登录的Firefox扩展。每次打开一个新窗口,但不打开新选项卡时,运行扩展的“代码”。我宁愿代码只在每个会话中运行一次。每个会话只能运行一次Firefox扩展代码

扩展的设置如下所示。 (让我知道如果我错过什么):

铬清单

overlay chrome://browser/content/browser.xul chrome://my/overlay.xul

在overlay.xul:
<overlay id="socialSidebarOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://my/code.js" />
</overlay>

在code.js


alert('being called')

T他的问题是,只有当Firefox启动时才会显示“正在调用”,而不是在打开新标签或窗口时显示。什么是实现这个目标的方法?

回答

3

可以使用JavaScript code module,以确保您的代码只执行一次。

+0

谢谢!!!!这正是我所期待的。 JSM模块仅在打开标签和新窗口后才加载一次:) – Alexis 2010-12-01 21:09:47

1

您可能希望观察(和行为)的一个可能的Mozilla Observer Notifications

无论是实际行动的东西在启动时,或在您的扩展检查是在浏览器关闭[这个当重置一个特定的值可能会非常棘手,因为异常关机可能不会重置]。

另请参见:Receiving Startup Notifications