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.
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!
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!