Jsdom: CSSStyleSheet n'a pas de propriétés ownerNode ou href.

Créé le 2 janv. 2015  ·  4Commentaires  ·  Source: jsdom/jsdom

Je sais que ce projet a une clause de non-responsabilité concernant le fait de ne pas prendre en charge tout le CSSOM, mais j'ai rencontré des erreurs en essayant de faire fonctionner l' inspecteur HTML avec jsdom au lieu de PhatomJS, et je l'ai retracé jusqu'à l'absence de ces deux propriétés sur le CSSStyleSheet objet.

D'après ce que je peux dire, la fonction suivante dans level2 / style.js est l'endroit où cela pourrait / devrait être ajouté, mais je ne connais pas assez la base de code pour en être sûr.

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

Quoi qu'il en soit, cela a changé le travail pour moi localement, alors j'espère que c'est aussi simple que cela. Merci pour la considération.

bug css important or easy

Commentaire le plus utile

@lexoyo J'ai également besoin de cela et j'ai essayé de l'examiner - mais je ne sais pas comment ...

Il existe un fichier, HTMLStyleElement-impl.js, qui appelle createStylesheet () dans helpers> stylesheet.js et voici un tas d'ordures et de TODO.

Il me semble que "cssom" devrait être utilisé à la place, qui (semble avoir) ce dont nous avons besoin - mais je ne sais pas comment pour le moment. De plus, je n'ai pas plus de temps, alors je vais enquêter davantage si je peux avoir plus de temps. Si vous le comprenez, faites-le moi savoir!

Tous les 4 commentaires

Bonne prise. Je vais marquer cela comme un bogue et j'espère obtenir bientôt une version plus raisonnée de votre correctif.

FWIW, je crois que les politiques d'origine croisée imposent que les feuilles de style non de même origine ne soient pas incluses dans document.styleSheets . Je ne sais pas comment jsdom traite l'origine du fichier qu'il traite, donc cela peut être délicat, mais de toute façon, je pense que c'est quelque chose qui vaut la peine d'être gardé à l'esprit.

Bonjour
J'étais sur le point de signaler un problème pour cela, ownerNode n'est toujours pas pris en charge, n'est-ce pas?
Si c'est le cas, je serai heureux d'essayer de l'ajouter
Merci !

@lexoyo J'ai également besoin de cela et j'ai essayé de l'examiner - mais je ne sais pas comment ...

Il existe un fichier, HTMLStyleElement-impl.js, qui appelle createStylesheet () dans helpers> stylesheet.js et voici un tas d'ordures et de TODO.

Il me semble que "cssom" devrait être utilisé à la place, qui (semble avoir) ce dont nous avons besoin - mais je ne sais pas comment pour le moment. De plus, je n'ai pas plus de temps, alors je vais enquêter davantage si je peux avoir plus de temps. Si vous le comprenez, faites-le moi savoir!

Cette page vous a été utile?
0 / 5 - 0 notes