火狐扩展程序检测窗口任务栏位置

Firefox extension detect windows taskbar position

本文关键字:任务栏 位置 窗口 检测 扩展 程序 火狐      更新时间:2023-09-26

我正在开发一个Firefox扩展,我使用xul:panel。我想将其放置在右下角,但我不想位于窗口任务栏下方。我使用openPopupAtScreen和屏幕坐标来定位它我的问题是当用户将窗口任务栏放在屏幕右侧垂直时。我的面板位于任务栏下方。有没有办法检测任务栏位置或根据该位置绘制任务栏位置的解决方法?

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