i_a*_*orf 7 javascript xul firefox-addon bounding-box
我正在写一个Firefox扩展.我试图将它限制为只有XUL + Javascript(没有XPCOM).当我得到一个mouseover
HTML元素的事件时,我需要在windows坐标系中获取它的边界框(即内置的XUL文档browser.xul).
显而易见的地方是在mouseover事件处理程序中放置这样的东西:
var rect = e.target.getBoundingClientRect();
Run Code Online (Sandbox Code Playgroud)
这很棒,但是它给了我HTML文档坐标系中的矩形,它相对于HTML绘图区域的左上角.我想在这个图像附近使用panel.openPopup()显示一个xul:panel元素(但不使用其中一个预定义的弹出位置),所以我需要翻译坐标.
我尝试过以下(在XUL dom中)来获取偏移量来进行翻译,它适用于某些网站,但不是全部,并且似乎没有考虑到侧边栏所需的x翻译.
var appcontent = document.getElementById("appcontent");
if (appcontent) {
chromeOffsetX = r.left;
chromeOffsetY = r.top;
}
Run Code Online (Sandbox Code Playgroud)
那么,最好的方法是什么?
注意:对于IE扩展,我会使用(并使用过)IDisplayServices :: TransformRect() - 对于Firefox有类似的东西吗?
现在有赏金!
事实证明,获取位置是无关紧要的,因为您可以使用以下方法相对于元素定位项目:
hoverPanel.openPopup(someElement, "overlap", offsetX, offsetY, false, false);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6413 次 |
最近记录: |