Firefox addon 如何使Firefox扩展中的模式对话框集中在屏幕上?

Firefox addon 如何使Firefox扩展中的模式对话框集中在屏幕上?,firefox-addon,modal-dialog,Firefox Addon,Modal Dialog,如果我有一个对话框,我想把它放在屏幕中央,我可以这样做: var w = window.openDialog('chrome://syndicus/content/saveDialog.xul', '', 'chrome,dialog'); w.centerWindowOnScreen(); 但是如果它是一个模式对话框,那么在用户按下某个按钮之前,openDialog函数不会返回,因此在太迟之前,centerWindowOnScreen不会被调用。如何使模式对话框居中?在对话框本身的JavaS

如果我有一个对话框,我想把它放在屏幕中央,我可以这样做:

var w = window.openDialog('chrome://syndicus/content/saveDialog.xul', '', 'chrome,dialog');
w.centerWindowOnScreen();

但是如果它是一个模式对话框,那么在用户按下某个按钮之前,
openDialog
函数不会返回,因此在太迟之前,
centerWindowOnScreen
不会被调用。如何使模式对话框居中?

在对话框本身的JavaScript中调用屏幕上的
centerWindow

<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        buttons="accept,cancel"
        ondialogaccept="onAccept();"
        ondialogcancel="onCancel();">
  <script type="text/javascript"><![CDATA[
    window.addEventListener('load', function() {
      window.centerWindowOnScreen();
    }, false);
    // more JavaScript ...
  ]]></script>
</dialog>

在对话框本身的JavaScript中调用屏幕上的
CenterWindow

<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        buttons="accept,cancel"
        ondialogaccept="onAccept();"
        ondialogcancel="onCancel();">
  <script type="text/javascript"><![CDATA[
    window.addEventListener('load', function() {
      window.centerWindowOnScreen();
    }, false);
    // more JavaScript ...
  ]]></script>
</dialog>

尝试将“中心屏幕”添加到功能中

window.openDialog('chrome://syndicus/content/saveDialog.xul', '', 'chrome,dialog,centerscreen');
尝试将“中心屏幕”添加到功能

window.openDialog('chrome://syndicus/content/saveDialog.xul', '', 'chrome,dialog,centerscreen');

这对我来说并不是很明显,所以我想我会把它作为一个问题扔掉。如果有人知道比这更好的方法,请随意发布。这对我来说不是很明显,所以我想我会把它作为一个问题扔掉。如果有人知道比这更好的方法,请随时发布。哦!这里也列出了。它在MacOS上的Thunderbird中不起作用。它在水平方向居中,但在垂直方向上,它以随机位置显示!这里也列出了。它在MacOS上的Thunderbird中不起作用。它在水平方向居中,但在垂直方向上以随机位置显示。