我知道这个项目有一个关于不支持所有CSSOM的免责声明,但是在尝试使HTML Inspector与jsdom而不是PhatomJS一起使用时遇到了一些错误,并且我将其归结为CSSStyleSheet
缺少这两个属性。
据我所知,可以在/应该在level2 / style.js中添加
function evaluateStylesheet(data, sheet, baseUrl) {
// this is the element
var newStyleSheet = cssom.parse(data);
var spliceArgs = newStyleSheet.cssRules;
spliceArgs.unshift(0, sheet.cssRules.length);
Array.prototype.splice.apply(sheet.cssRules, spliceArgs);
scanForImportRules.call(this, sheet.cssRules, baseUrl);
// Add references to `this` and `baseUrl`.
sheet.href = baseUrl;
sheet.ownerNode = this;
this.ownerDocument.styleSheets.push(sheet);
}
无论如何,这改变了我在本地的工作,因此希望它就这么简单。 感谢您的考虑。
接得好。 我将其标记为一个错误,希望很快会得到更原理性的修复版本。
FWIW,我相信跨域策略规定document.styleSheets
中不包含非同源样式表。 我不确定jsdom如何处理它正在处理的文件的来源,因此这可能很棘手,但是无论哪种方式,我认为都应牢记。
您好
我正为此提出一个问题,仍然不支持ownerNode对吗?
如果是这样,我很乐意尝试添加它
谢谢 !
@lexoyo我也需要这个,并且一直在尝试研究它-但不确定如何...
有一个HTMLStyleElement-impl.js文件,该文件在helpers> stylesheet.js中调用createStylesheet(),这是一堆垃圾和TODO。
在我看来,应该改用“ cssom”,它(似乎)具有我们所需要的-但目前尚不确定。 另外,我没有更多的时间,因此,如果可以多花点时间,我会做进一步的调查。 如果您知道了,请告诉我!
最有用的评论
@lexoyo我也需要这个,并且一直在尝试研究它-但不确定如何...
有一个HTMLStyleElement-impl.js文件,该文件在helpers> stylesheet.js中调用createStylesheet(),这是一堆垃圾和TODO。
在我看来,应该改用“ cssom”,它(似乎)具有我们所需要的-但目前尚不确定。 另外,我没有更多的时间,因此,如果可以多花点时间,我会做进一步的调查。 如果您知道了,请告诉我!