Jsdom: CSSStyleSheet verfügt nicht über die Eigenschaften ownerNode oder href.

Erstellt am 2. Jan. 2015  ·  4Kommentare  ·  Quelle: jsdom/jsdom

Ich weiß , dass dieses Projekt einen Vermerk enthält etwa nicht alle der CSSOM unterstützen, aber ich stieß auf einige Fehler beim Versuch , bekommen HTML - CSSStyleSheet Inspektoren an der Arbeit mit jsdom statt PhatomJS, und ich verfolgen es auf das Fehlen dieser beiden Eigenschaften auf den nach unten CSSStyleSheet Objekt.

Soweit ich weiß, ist / sollte die

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);
}

Wie auch immer, diese veränderte Arbeit für mich vor Ort, also ist es hoffentlich so einfach. Vielen Dank für die Überlegung.

bug css important or easy

Hilfreichster Kommentar

@lexoyo Ich brauche das auch und habe versucht, es zu untersuchen - aber nicht sicher, wie ...

Es gibt eine Datei, HTMLStyleElement-impl.js, die createStylesheet () in helpers> stylesheet.js aufruft, und hier ist eine Reihe von Müll und TODOs.

Es scheint mir, dass stattdessen "cssom" verwendet werden sollte, die (scheinbar) das haben, was wir brauchen - aber nicht sicher, wie im Moment. Außerdem habe ich keine Zeit mehr, also werde ich weiter untersuchen, ob ich mehr Zeit habe. Wenn Sie es herausfinden, lassen Sie es mich bitte wissen!

Alle 4 Kommentare

Guter Fang. Ich werde dies als Fehler markieren und hoffentlich bald eine prinzipiellere Version Ihres Fixes erhalten.

FWIW, ich glaube, dass Cross-Origin-Richtlinien vorschreiben, dass Stylesheets, die nicht denselben Ursprung haben, nicht in document.styleSheets . Ich bin mir nicht sicher, wie jsdom den Ursprung der verarbeiteten Datei behandelt, daher mag dies schwierig sein, aber ich denke, es lohnt sich, daran zu denken.

Hallo
Ich wollte gerade ein Problem dafür einreichen, ownerNode wird immer noch nicht unterstützt, oder?
Wenn dies der Fall ist, werde ich gerne versuchen, es hinzuzufügen
Danke !

@lexoyo Ich brauche das auch und habe versucht, es zu untersuchen - aber nicht sicher, wie ...

Es gibt eine Datei, HTMLStyleElement-impl.js, die createStylesheet () in helpers> stylesheet.js aufruft, und hier ist eine Reihe von Müll und TODOs.

Es scheint mir, dass stattdessen "cssom" verwendet werden sollte, die (scheinbar) das haben, was wir brauchen - aber nicht sicher, wie im Moment. Außerdem habe ich keine Zeit mehr, also werde ich weiter untersuchen, ob ich mehr Zeit habe. Wenn Sie es herausfinden, lassen Sie es mich bitte wissen!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

khalyomede picture khalyomede  ·  3Kommentare

kilianc picture kilianc  ·  4Kommentare

drewish picture drewish  ·  4Kommentare

machineghost picture machineghost  ·  4Kommentare

mitar picture mitar  ·  4Kommentare