getBoundingClientRect() 在 XUL 中返回零

2024-01-08

我的 Firefox 扩展有问题

我有一个 XUL 弹出面板,其中包含用于标签云的 hbox,以及用于将 div 添加到此 hbox 的 JS 代码:

<hbox id="tag_base" ondblclick="alert('done')"/>

JS:

var root = document.getElementById('tag_base');
var tag = document.createElement('div');
tag.textContent = 'test';
root.appendChild(tag);
var rect = tag.getBoundingClientRect()
alert(rect.top)

我需要获取每个添加的 div 的尺寸,但是 getBoundingClientRect 根本无法工作。 如果我删除警报,它始终为零。 有了警报,情况就不同了: 第一次调用警报时,尽管 div 出现在屏幕上,但它会返回零。 任何后续警报都会返回正确的坐标。

如果我在 Chrome 中设置断点但是,一切都会正确报告。 如果我不以任何方式中断执行并运行循环,则仅返回零。

这让我很困惑。 调用“boxObject”会产生相同的结果,而“getClientRects[0]”在第一次调用时未定义。

任何有关可能导致此问题的原因的提示将不胜感激。


笔记 : 注意,如果您将 getBoundingClientRect 与具有 display:none 的元素一起使用,那么它将在 dom 中的任何位置返回 0。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

getBoundingClientRect() 在 XUL 中返回零 的相关文章

  • JavaScript 节点列表

    有没有办法连接 2 个 document getElementsByTagName 调用返回的 2 个 NodeList 比如说 我有以下代码 var inputs documentElement getElementsByTagName
  • 标准化设备坐标

    我正在编写一个处理 2D 图形形状的库 I m just wondering why should my coordinate system range from 1 1 for both the x and y axis instead
  • 如何在 JavaScript 中将随机对象文本插入到 DOM 中?

    我正在为表单输入字段制作自定义类包装器 这些字段内部包含 DOM 节点 并通过额外的功能方法进行增强 我的问题是是否有与 toString 类似的方法用于附加到 DOM 因为我想直接将对象插入到 DOM 而不是调用其他方法 换句话说 这是我
  • 加载对象内容后运行 Javascript 函数

    当内容的内容时 如何运行 Javascript 函数已加载 这DOMContentLoaded事件在此之前触发 以及依赖它的东西 例如 JQuery 的 同样地 Compare this http plnkr co edit znu5iz3
  • 将输入字段添加到 div 容器 (javascript)

    我想将一些 html 数据添加到 div 容器的末尾 目前 我使用innerHtml来做到这一点
  • 生成落在多边形或形状内的点网格的最快方法?

    我在 python 中使用 shapely 并尝试在网格中生成均匀间隔的点 这些点在最快的 O n 时间内落在形状内 形状可以是任何闭合多边形 而不仅仅是正方形或圆形 我目前的做法是 找到最小 最大 y 和 x 来构建一个矩形 给定间距参数
  • QDomDocument 无法设置带有 标记的 HTML 文档的内容

    当我使用QDomDocument对于 HTML 内容 如果存在则无法设置内容在文档的开头 但实际上为什么 例如 考虑以下代码片段 QDomDocument doc QString content a href bar foo a qDebu
  • PHP DOM 获取选定的

    假设 HTML 看起来像这样
  • Python 3.0 使用turtle.onclick

    所以这是我的问题 我必须为我的计算机科学课程制作一张图片 而在海龟中进行估计确实令人沮丧 我计划使用 onclick 来显示我的位置 import turtle as t def getPos x y print x y return de
  • 两组点之间的距离[重复]

    这个问题在这里已经有答案了 因此 在查看了 stackoverflow 上提出的各种问题后 我仍然无法理解 R 中的 dist 函数 甚至无法理解一般的距离矩阵 所以我有两个带有 xy 坐标的数据框 df1 lt data frame x
  • 在针对 XSD 进行验证时,使用 DOM、StAX、SAX 解析器中的任何一个来查找 XML 中确切缺失的元素

    我有一个 XML 文件及其相应的 XSD 文件 在使用 StAX 解析器进行验证时 我附加了一个错误处理程序 基本上 我在格式良好的 XML 文件中遇到两种类型的错误 1 元素内的数据类型不正确 例如元素内的字符串应该具有整数 2 缺少元素
  • 矩阵向量变换

    我正在编写一个代码来制作软件蒙皮器 骨骼 皮肤动画 并且我正处于 优化 阶段 蒙皮器工作得很好 并且在 Core 上 1 09 毫秒内对 4900 个三角形网格与 22 个骨骼进行蒙皮Duo 2 Ghz 笔记本 我需要知道的是 1 有人可以
  • jQuery 模式窗口从我的表单中删除元素

    jQuery 当我用它创建一个包含表单元素的模式窗口时 当我提交表单时 它会取出这些元素 表格示例
  • 更改模板标签 <# {% {{ 等后,John Resig 的微模板出现语法错误

    我在使用 John Resig 的 Micro 模板时遇到了一些麻烦 谁能帮我解释为什么它不起作用 这是模板 以及发动机的改装部分 str replace r t n g split join t replace gt t g 1 r re
  • Object.defineProperty:dom元素属性的setter

    我无法完全理解如何Object defineProperty适用于 dom 元素 在普通的 javascript 对象上它就像一个魅力 var obj name john Object defineProperty obj name get
  • AngularJS:在部分视图出现之前触发 $viewContentLoaded

    对于部分视图 我想做一些我通常会做的 JavaScript 事情 document ready function 例如将 venet 侦听器绑定到元素 我知道这对于 AngularJS 和加载到 根 视图中的部分视图不起作用 因此 我向控制
  • React 错误:目标容器不是 DOM 元素

    我刚刚开始使用 React 所以这可能是一个非常简单的错误 但我们开始吧 我的html代码非常简单 load staticfiles
  • 如何使用 PHP 从内容中查找 URL?

    需要一个简单的 preg match 它将在内容中查找 c aspx 不带引号 如果找到 它将返回整个 url 举个例子 content div 4 a href m c aspx mt 01 9310ba801f1255e02e411d8
  • 限制可选 DOM 复选框

    我试图限制用户可以选择的复选框数量 这些复选框是为数组中的每个项目生成的 DOM 输入对象 我目前对此没有运气 因此非常感谢任何帮助 谢谢 在这里小提琴 http jsfiddle net vVxM2 222 http jsfiddle n
  • 窗口大小调整触发的 DOM 事件

    我有一个布局相当复杂的页面 最初打开页面时 某些元素的对齐存在问题 但是 可以通过更改浏览器窗口的大小来 永久 解决此问题 显然 我不希望用户必须调整浏览器窗口的大小才能使页面正确显示 所以我想知道是否有一种方法可以在页面首次加载时以编程方

随机推荐