2010-10-01 82 views
0

如果我有一個對話,我想中心在屏幕上,我可以這樣做:如何在Firefox擴展模塊對話框中居中顯示?

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

但如果它是一個模式對話框,然後openDialog函數不返回,直到後用戶已經按了一些東西,所以centerWindowOnScreen不會被調用,直到爲時已晚。我如何居中模式對話框?

回答

3

嘗試添加「中心屏幕」的功能。

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

D'oh!它也在這裏列出。 https://developer.mozilla.org/en/DOM/window.open – MatrixFrog 2011-04-15 23:32:27

2

把呼叫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> 
+0

這對我來說並不是顯而易見的,所以我想我會把它作爲一個SO問題拋出。如果有人知道比這更好的方式,請隨時發佈。 – MatrixFrog 2010-10-01 19:42:45

相關問題