我做错了什么,还是 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 是否完全缺乏对级联内联样式的支持?
那是真的。 还没有人写过任何东西来正确处理级联。
哎哟……这听起来像是一项艰巨的任务? 就样式处理而言,看起来getComputedStyle()
中没有任何样式解析? 例如,浏览器为上例中的颜色返回rgb(255, 0, 0)
,而 jsdom 返回red
。
知道什么时候/是否会解决这个问题吗? 由于 JSDOM 中缺少级联,getComputedStyle 返回了错误的值,我的测试失败了。