2012-04-24 43 views
2

我正在開發一個Firefox擴展,我使用的是xul:panel。我想把它放在右下角,但我不想在windows任務欄下。我使用openPopupAtScreen和屏幕座標來定位它我的問題是當用戶在屏幕右側的垂直任務欄。我的面板在任務欄下。有什麼辦法來檢測任務欄的位置或解決方法來繪製它根據?Firefox擴展檢測窗口任務欄位置

回答

2

您應該使用nsIScreenManager爲:

var screenManager = Components.classes["@mozilla.org/gfx/screenmanager;1"] 
           .getService(Components.interfaces.nsIScreenManager); 
var screen = screenManager.primaryScreen; 
var left = {}; 
var top = {}; 
var width = {}; 
var height = {}; 
screen.GetAvailRect(left, top, width, height); 
alert("Available screen area: " + left.value + "," + top.value + " x " + 
     width.value + "," + height.value); 

請注意,這是在看只有主屏幕 - 這可能不是最好的解決方案,如果用戶有多個屏幕。一種替代方法是獲取與您正在運行的Firefox窗口的座標相對應的屏幕,然後查看其可用區域。