Firefox插件 - 我可以监听nsIPromptService处理的提示吗?

时间:2014-04-28 11:32:09

标签: javascript firefox firefox-addon firefox-addon-sdk

Firefox公开此服务:

https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIPromptService

大!可以使firefox显示各种提示,警报,确认框等。

但我可以在任何地方注册事件监听器吗?基本上我想知道屏幕上是否显示任何alertconfirmbasic auth提示,甚至<select>选项列表。有可能吗?

2 个答案:

答案 0 :(得分:1)

正如您已经发现的那样,有一个DOMWillOpenModalDialog事件。此事件可能足以满足您的需求,但您应该记住一些事项:

  • 您需要向您感兴趣的所有窗口添加一个事件监听器,这样可以打开一个模态对话框。
  • 该事件不仅针对nsIPromptService窗口,而且针对tab-modal(伪窗口)和所有其他模式对话框,例如Filepicker窗口,主要首选项窗口的子窗口,自定义添加-on提供了窗户。

但是还有其他可能的解决方案:

  • Override nsIPromptService有自己的实现。然后,您只需保留对原先实现的引用,并在检查它们之后传递调用。
  • 您可以像任何其他XUL窗口一样覆盖实际的模态提示窗口,至少在Firefox桌面上,例如chrome://global/content/commonDialog.xul和/或chrome://global/content/selectDialog.xul可以更加自定义窗口。

答案 1 :(得分:0)

我发现DOMWillOpenModalDialog事件,但我不确定它是否符合所有条件,尤其是<select>选项:

https://developer.mozilla.org/en-US/docs/Web/Reference/Events/DOMWillOpenModalDialog