Как получить модальное диалоговое окно в расширении Firefox для центрирования на экране? - PullRequest
0 голосов
/ 01 октября 2010

Если у меня есть диалог, и я хочу центрировать его на экране, я могу просто сделать что-то вроде:

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

, но если это модальный диалог, тогда *Функция 1006 * не возвращается до тех пор, пока пользователь что-то не нажмет, поэтому centerWindowOnScreen не будет вызван, пока не станет слишком поздно.Как я могу центрировать модальное диалоговое окно?

Ответы [ 2 ]

3 голосов
/ 16 апреля 2011

попробуйте добавить "CenterCreen" к функции.

window.openDialog('chrome://syndicus/content/saveDialog.xul', '', 'chrome,dialog,centerscreen');
2 голосов
/ 01 октября 2010

Поместите вызов centerWindowOnScreen в JavaScript самого диалога:

<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>
...