Javascript firefox插件:获取屏幕边缘和网页之间的距离

Javascript firefox插件:获取屏幕边缘和网页之间的距离,javascript,firefox-addon,Javascript,Firefox Addon,好的,考虑这个图像。 I develop an add-on firefox and I would : - the distance in red, between top of screen and top of `visible webpage` - the distance in red between left of screen and left of `visible webpage` - the distance in green 什么意思 我有一千个屏幕坐标(X,

好的,考虑这个图像。

I develop an add-on firefox and I would :
  - the distance in red, between top of screen and top of `visible webpage`
  - the distance in red between left of screen and left of `visible webpage`
  - the distance in green
什么意思

我有一千个屏幕坐标(X,Y),我必须计算相对于网页的坐标

Example : 

Considering
  Screen size : 1200 * 800
  Webpage size : 400*300
  Red distance between left screen border and left webpage border  : 200
  Red distance between top screen border and top webpage border  : 300

So my coordinates screen => relative webpage becomes :
  ( 100, 100 ) => OUTSIDE WEBPAGE( ignored )
  ( 1100, 650 ) => OUTSIDE WEBPAGE ( ignored )
  ( 200, 300 ) => ( 0,0 )
  ( 250, 400 ) => ( 50, 100 )
我已经有宽度和高度的页面与

$(window).width()
$(window).heigth()
如果我能得到标签的左角坐标,我就能在屏幕上确定标签的角

我已经在这里问过这个问题了,但是需要IE的扩展。如果你需要更多的细节。但我不能在firefox上使用这个答案


DOMWindow
s具有
mozInnerScreenX
、和
pageXOffset
、和
screenX

我用软件将屏幕移动到0,0,得到了以下结果:

aDOMWindow.mozInnerScreenX:8 DOMWindow.screenX:0

如果我把窗户最大化

aDOMWindow.mozInnerScreenX:-6 DOMWindow.screenX:0

所以让我们使用screenX

现在如果你有一个gBrowser,那就是你在上面指出的“内部窗口”,我们看到boxObject有一个screenX

因此,在我看来,只要做到:

var aDOMWindow = Services.wm.getMostRecentWindow('navigator:browser'/*null*/);
console.log(aDOMWindow.mozInnerScreenX, aDOMWindow.screenX)

if (aDOMWindow.gBrowser) {
  var innerWin = aDOMWindow.gBrowser.boxObject;
  console.log(innerWin.screenX, innerWin.screenY);
}