Jsdom: CSSStyleSheet没有ownerNode或href属性。

创建于 2015-01-02  ·  4评论  ·  资料来源: jsdom/jsdom

我知道这个项目有一个关于不支持所有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);
}

无论如何,这改变了我在本地的工作,因此希望它就这么简单。 感谢您的考虑。

bug css important or easy

最有用的评论

@lexoyo我也需要这个,并且一直在尝试研究它-但不确定如何...

有一个HTMLStyleElement-impl.js文件,该文件在helpers> stylesheet.js中调用createStylesheet(),这是一堆垃圾和TODO。

在我看来,应该改用“ cssom”,它(似乎)具有我们所需要的-但目前尚不确定。 另外,我没有更多的时间,因此,如果可以多花点时间,我会做进一步的调查。 如果您知道了,请告诉我!

所有4条评论

接得好。 我将其标记为一个错误,希望很快会得到更原理性的修复版本。

FWIW,我相信跨域策略规定document.styleSheets中不包含非同源样式表。 我不确定jsdom如何处理它正在处理的文件的来源,因此这可能很棘手,但是无论哪种方式,我认为都应牢记。

您好
我正为此提出一个问题,仍然不支持ownerNode对吗?
如果是这样,我很乐意尝试添加它
谢谢 !

@lexoyo我也需要这个,并且一直在尝试研究它-但不确定如何...

有一个HTMLStyleElement-impl.js文件,该文件在helpers> stylesheet.js中调用createStylesheet(),这是一堆垃圾和TODO。

在我看来,应该改用“ cssom”,它(似乎)具有我们所需要的-但目前尚不确定。 另外,我没有更多的时间,因此,如果可以多花点时间,我会做进一步的调查。 如果您知道了,请告诉我!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

tolmasky picture tolmasky  ·  4评论

domenic picture domenic  ·  3评论

jacekpl picture jacekpl  ·  4评论

kilianc picture kilianc  ·  4评论

kentmw picture kentmw  ·  3评论