document.querySelector(..).offsetWidth在Firefox中返回null



我在javascript(coffeescript)文件中使用以下代码:

myVar = document.querySelector('SVG > a:nth-child(2) > text').offsetWidth

在googlechrome中,这将返回嵌套在svg元素中的a(锚点)元素中的文本元素的宽度,正如预期的那样。在Firefox中,这会返回一个NULL。我认为我的选择器语法可能不符合Mozilla的标准,所以我也尝试了一下,但即使我可以正确地选择DOM元素(如控制台输出的),我也无法检索任何属性offsetWidth;它总是以未定义的形式出现。

现在,如果重要的话,我的SVG对象通过一些Javascript动态地注入到我的页面中。它直接放置在div的主体中,并包含在<svg></svg>标记中。

什么东西?如何确定这些元素的宽度?

谢谢!

NickFitz的答案正是您所需要的。

他提出使用SVG的标准函数getBBox()

myVar = document.querySelector (...).getBBox ().width

相关内容

  • 没有找到相关文章

最新更新