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

时间:2014-10-21 17:01:32

标签: javascript svg offsetwidth

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

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

在谷歌浏览器中,它返回一个文本元素的宽度,该元素嵌套在一个嵌套在svg元素内的(锚)元素内,如预期的那样。在Firefox中,它返回NULL。我认为也许我的选择器语法不符合Mozilla的标准所以我也玩过它,但即使我可以正确选择DOM元素(由控制台输出)我也无法检索任何属性offsetWidth;它总会以未定义的方式回归。

现在,如果它很重要,我的SVG对象会被一些Javascript动态地注入我的页面。它直接放在div的正文中,并用<svg></svg>标记括起来。

是什么给出的?如何确定这些元素的宽度?

谢谢!

1 个答案:

答案 0 :(得分:2)

NickFitz&#39; answer就是你所需要的。

他提议使用SVG的标准功能getBBox()

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