你如何将样式表广告到JSDOM

我目前正在一个项目,需要我有计算风格发送到浏览器通过JSDOM。 我目前正在寻找一种方法来注入一些基本的CSS到JSDOM,以便它可以计算出正确的内联样式(是的,我知道这是不好的)。

从我发现我可以使用JSDOM 2级,但从那里我找不到任何文档如何注入样式这是我到目前为止

var document = jsdom.jsdom('<!DOCTYPE html><html><head></head><body id="abody" ></body></html>', jsdom.level(2, 'style'), { features : { FetchExternalResources : ['script', 'css'], QuerySelector : true } }); 

我一直插入到头标签的CSS,但无济于事。 而且我知道我也可以做错上面的代码。

任何帮助将是伟大的。

       

网上收集的解决方案 "你如何将样式表广告到JSDOM"

那么,这听起来有点愚蠢,但这是我所做的:

  var path = require('path'); var fs = require('fs'); var mainCss = fs.readFileSync(path.normalize(__dirname + "web_main.css"), 'utf8'); var document = jsdom.jsdom('<!DOCTYPE html><html><meta http-equiv="content-type" content="text/html; charset=utf-8"><head></head><body id="abody" ></body></html>', jsdom.level(3, 'index'), { features : { FetchExternalResources : ['script', 'css'], QuerySelector : true } }); var window = document.createWindow(); var head = document.getElementsByTagName('head')[0]; style = document.createElement("style"); style.type = 'text/css'; style.innerHTML = mainCss; head.appendChild(style); 

所以基本上所有我改变的是把级别移动到3索引,而不是直接在起始的HTML,我后来追加它。

它非常简单,我希望它可以帮助别人。