2012-04-24 61 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窗口的坐标相对应的屏幕,然后查看其可用区域。