我正在尝试让Mozilla FireFox插件显示通知。对于Windows甚至Mac都可以看到通知我希望用户单击通知并打开网页,这听起来很简单。 但是当添加观察者并打开window.open或gBroswer.addTab窗口并打开选项卡时如果FireFox在显示通知时被最小化,则窗口在后台打开并且对用户不可见。
尝试使用Components.interfaces.nsIAlertsService和chrome://global/content/alerts/alert.xul,从这个角度来看,它们的工作方式相同。 有没有办法告诉浏览器是最顶层的并且对用户可见?
答案 0 :(得分:1)
看起来不能做到这一点。 Firefox通常仅支持在不同浏览器窗口之间切换焦点时,其中一个已经集中(通过window.focus()
)。要按照您希望的方式处理通知(以及Thunderbird的处理方式),需要在Windows上调用SetForegroundWindow() - Firefox代码中只有two occasions来调用此函数。一个是当一个新的Firefox进程启动时,另一个是当一个Firefox窗口被最小化时。不幸的是,在这种情况下,两者都不能真正使用,Thunderbird确实使用自定义代码而不是现有的XPCOM API将自己置于前台。