8
votes

I wonder if I could get a DOM element's actual width and coordinates, as I can get using .clientWidth / .offsetWidth from within the browser.

Does jsdom has browser rendering capabilities in order to get this data?

If not, how can I get this within node.js server?

Thanks!

1
This has nothing to do with node.js. Node.js executes on an application / web server, not the client's browser. I think jQuery has functions to get you the computed width and height of an element. - Brandon
@Brandon: node has many libraries that emulate the DOM API on the server; jsdom is one of them. - josh3736
Brandon, can you write some of them? This is what I'm looking for. - tomericco

1 Answers

15
votes

JSDOM is strictly a DOM API emulation library. It does not attempt to actually render a document, which is necessary to compute element size and position.

You may want to look at PhantomJS. It is a full WebKit renderer with a JavaScript API. It is entirely separate from node, so you either need to write a utility script using Phantom's API, or use a npm module that lets you control Phantom from node.