М. Босток указал, что jsdom nodejs имеет неполную поддержку svg и, что критично для меня, не поддерживает getBBox()
. Также он посоветовал перейти на PhantomJS от nodejs. Я проверил, но подход для меня новый.
Мой скрипт nodejs + jsdom создает виртуальный DOM, с которым играет мой d3js, и выглядит следующим образом:
var jsdom = require('jsdom');
jsdom.env( // creates virtual page
"<html><body></body></html>", // create my DOM hook,
[ 'http://d3js.org/d3.v3.min.js', // add my online dependencies ...
'../js/d3.v3.min.js', // ... & local ones
'../js/jquery-2.1.3.min.js'],
function (err, window) {
//my normal JS or nodejs code here !
}
);
Как перенести этот nodejs + jsdom в nodejs + PhantomJS?