私は何か間違ったことをしていますか、それともJSDOMはカスケードインラインスタイルのサポートを完全に欠いていますか?
簡単な例:
var doc = jsdom.jsdom('<html><body><div style="color: red;"><div id="nested"></div></div></body></html>');
var win = doc.defaultView;
var el = doc.getElementById('nested');
console.log(win.getComputedStyle(el, ''));
出力:
CSSStyleDeclaration {
'0': 'display',
_values: { display: 'block' },
_importants: { display: '' },
_length: 1,
_onChange: [Function] }
参考までに、同じ例でのブラウザの動作は次のとおりです。
JSDOMは、カスケードインラインスタイルのサポートを完全に欠いていますか?
それは本当のafaikです。 カスケードを適切に処理するための記述はまだありません。
痛い...それは大規模な作業のように聞こえますか? スタイル処理に関する限り、 getComputedStyle()
にはスタイル解析が行われていないようにも見えますか? たとえば、ブラウザは上記の例の色に対してrgb(255, 0, 0)
を返しますが、jsdomはred
を返します。
これがいつ/いつ修正されるかについて何か考えはありますか? JSDOMにカスケードがないため、getComputedStyleが間違った値を返すため、テストが失敗します。