2

私はFirefox拡張機能を開発していて、xul:panelを使用しています。右下に配置したいのですが、Windowsのタスクバーの下に置きたくありません。openPopupAtScreenと画面座標を使用して配置します。私の問題は、ユーザーが画面の右側にWindowsタスクバーを垂直に配置している場合です。私のパネルはタスクバーの下にあります。タスクバーの位置を検出する方法や、それに応じて描画するための回避策はありますか?

4

1 に答える 1

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);

これはプライマリ スクリーンのみを表示していることに注意してください。ユーザーが複数のスクリーンを使用している場合、これは最適なソリューションではない可能性があります。1 つの代替方法は、実行中の Firefox ウィンドウの座標に対応する画面を取得してから、その使用可能な領域を確認することです。

于 2012-04-24T14:38:21.777 に答える