document.querySelector(...).offsetWidth возвращает ноль в Firefox

Я использую следующий код в моем файле javascript (coffeescript):

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

В Google Chrome это возвращает ширину текстового элемента, который вложен в элемент (якорь), который вложен в элемент SVG, как и ожидалось. В Firefox это возвращает NULL. Я подумал, что, возможно, мой синтаксис селектора не соответствует стандартам Mozilla, поэтому я поэкспериментировал с этим, но даже если бы я мог правильно выбрать элемент DOM (как выводит консоль), я не смог получить какое-либо свойство offsetWidth; это всегда возвращалось бы как неопределенное.

Теперь, если это имеет значение, мой объект SVG динамически внедряется в мою страницу с помощью некоторого Javascript. Он помещается прямо в тело div и заключен в <svg> а также </svg> теги.

Что дает? Как я могу определить ширину этих элементов?

Спасибо!

1 ответ

NickFitz ответ на то, что вам нужно.

Он предлагает использовать стандартную функцию SVG getBBox(),

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

Другие вопросы по тегам