Javascript 扩展对话框:跨会话信息;“预加载”;事件和如何居中启动对话框?
我正在为个人消费和实践进行一个小型扩展。我想做的是在Firefox每次开始使用模式对话框时提供一些信息。我知道这通常是不赞成的,但这主要是为了诀窍。关于一些事情,我有几个问题——我觉得有更好的方法来做。请分享您的智慧:Javascript 扩展对话框:跨会话信息;“预加载”;事件和如何居中启动对话框?,javascript,firefox,firefox-addon,Javascript,Firefox,Firefox Addon,我正在为个人消费和实践进行一个小型扩展。我想做的是在Firefox每次开始使用模式对话框时提供一些信息。我知道这通常是不赞成的,但这主要是为了诀窍。关于一些事情,我有几个问题——我觉得有更好的方法来做。请分享您的智慧: 我已经创建了一个小对话框XUL,并且在主窗口的加载事件中注册了一个事件侦听器。要实际显示对话框,我使用: window.openDialog(“chrome://myext/content/prompt.xul“,”对话框名称“, “chrome,dialog,modal,cen
window.openDialog(“chrome://myext/content/prompt.xul“,”对话框名称“,
“chrome,dialog,modal,centerscreen,可调整大小”,params.focus();
中央屏幕
),它也会从左上角开始,最好放在中间,就像Firefox在启动请求时的密码一样。我怎样才能做到这一点
nsIWindowWatcher
服务,看看是否可以遍历返回的枚举数:
var ww=Components.class[“@mozilla.org/embedcomp/windowwatcher;1”]
.getService(组件.接口.nsIWindowWatcher);
var en=ww.getWindowEnumerator();
var win1=en.getNext();
//如果没有更多的en.getNext(),则这是第一个窗口
必须有更好的方法来做到这一点,不是吗?例如,某些事件在每个会话(而不是每个窗口)中只触发一次
窗口.close()
来实现这一点。但是,由于原始加载(触发模式对话框)是在页面完成加载后调用的,因此我可以在主页关闭之前看到它的一小部分,原因是window.close()
——这并不优雅。是否有类似于“页面加载前”的事件?实现这一目标的正确途径是什么同样,这主要是供个人使用,因此请忽略启动模式对话框的可用性因素。您可能需要观察主窗口打开之前发生的
最终ui启动
通知。您可以注册一个组件来观察更改后的配置文件
通知,然后在该通知期间,添加您自己来观察最终ui启动
通知。当您的组件随后收到该通知时,它可以打开您的模式对话框,然后在必要时退出应用程序