Получить фактическую ширину элемента DOM с помощью jsdom

Интересно, смогу ли я получить фактическую ширину и координаты элемента DOM, поскольку я могу использовать .clientWidth/.offsetWidth из браузера.

Есть ли у jsdom возможности рендеринга в браузере для получения этих данных?

Если нет, как я могу получить это на сервере node.js?

Спасибо!


person tomericco    schedule 11.11.2013    source источник
comment
Это не имеет ничего общего с node.js. Node.js выполняется в приложении/веб-сервере, а не в браузере клиента. Я думаю, что у jQuery есть функции, чтобы получить вычисленную ширину и высоту элемента.   -  person Brandon    schedule 11.11.2013
comment
@Brandon: на узле есть много библиотек, которые эмулируют DOM API на сервере; jsdom является одним из них.   -  person josh3736    schedule 12.11.2013
comment
Брэндон, ты можешь написать некоторые из них? Это то, что я ищу.   -  person tomericco    schedule 13.11.2013


Ответы (1)


JSDOM — это исключительно библиотека эмуляции DOM API. Он не пытается фактически отображать документ, который необходим для вычисления размера и положения элемента.

Вы можете посмотреть на PhantomJS. Это полноценный рендерер WebKit с API JavaScript. Он полностью отделен от узла, поэтому вам нужно либо написать служебный скрипт с использованием API Phantom, либо использовать модуль npm, позволяющий управлять Phantom. из узла.

person josh3736    schedule 11.11.2013
comment
Я знаю об этой ненадежной интеграции между ними. Я ищу официальные решения. Если это невозможно, я отмечу это как ответ. - person tomericco; 13.11.2013