从网页中检测我自己的Firefox扩展程序

Max*_*Max 5 javascript firefox-addon detection

我试图找到一种简单的方法来检测我的扩展是否安装在Firefox 3.6中.这应该从网页上完成,可能使用javascript.

我已经阅读了很多博客,说我应该尝试从我的扩展程序中加载图像.由于我拥有扩展,我可以编写代码,这似乎是一个不必要的黑客.

我还考虑过为web文档设置一个全局变量,但是我无法实现这一点.我以为我能写:

top.window.content.document.hasMyPlugin = true

但这似乎不起作用(hasMyPlugin未定义).我只访问我的域时添加了这个变量(我添加了一个WebProgressListener并检查了主机属性),因此全局命名空间污染应该不是问题.

有任何想法吗?

UPDATE

我尝试访问变量的方式很简单if(hasMyPlugin)或者if(document.hasMyPlugin)......也许我正在以错误的方式访问它?

Nei*_*eil 4

一种简单的方法是让您的扩展对用户定义的事件做出反应。您的网页将事件分派到适当的事件目标(如果没有更好的方法,您可以使用该文档),然后您的扩展程序的事件侦听器可以验证网页地址并执行操作。至少,您的事件侦听器可以对事件调用 PreventDefault() ;然后,网页可以调用 getPreventDefault() 来查看您的扩展是否存在。