Jsdom: CSSStyleSheet tidak memiliki properti ownerNode atau href.

Dibuat pada 2 Jan 2015  ·  4Komentar  ·  Sumber: jsdom/jsdom

Saya tahu proyek ini memiliki penafian tentang tidak mendukung semua CSSOM, tetapi saya mengalami beberapa kesalahan saat mencoba membuat Inspektur HTML bekerja dengan jsdom alih-alih PhatomJS, dan saya melacaknya ke kurangnya dua properti ini di CSSStyleSheet objek.

Dari apa yang saya tahu, fungsi berikut di level2 / style.js adalah tempat ini bisa / harus ditambahkan, tetapi saya tidak cukup paham dengan basis kode untuk mengetahui secara pasti.

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

Bagaimanapun, ini mengubah pekerjaan untuk saya secara lokal, jadi semoga sesederhana itu. Terima kasih atas pertimbangannya.

bug css important or easy

Komentar yang paling membantu

@lexoyo Saya juga membutuhkan ini dan telah mencoba untuk memeriksanya - tetapi tidak yakin bagaimana ...

Ada file, HTMLStyleElement-impl.js, yang memanggil createStylesheet () di helpers> stylesheet.js dan di sini ada banyak sampah dan TODO.

Tampaknya bagi saya bahwa "cssom" harus digunakan, yang (tampaknya) memiliki apa yang kita butuhkan - tetapi, tidak yakin bagaimana saat ini. Juga saya tidak punya lebih banyak waktu, jadi saya akan menyelidiki lebih lanjut jika saya bisa mendapatkan lebih banyak waktu. Jika Anda mengetahuinya, beri tahu saya!

Semua 4 komentar

Tangkapan yang bagus. Saya akan menandai ini sebagai bug dan semoga mendapatkan versi yang lebih berprinsip dari perbaikan Anda segera.

FWIW, saya yakin kebijakan lintas sumber menentukan bahwa lembar gaya yang tidak sama asal tidak disertakan dalam document.styleSheets . Saya tidak yakin bagaimana jsdom memperlakukan asal file yang sedang diprosesnya, jadi ini mungkin rumit, tapi bagaimanapun juga menurut saya itu sesuatu yang perlu diingat.

Halo
Saya akan mengajukan masalah untuk ini, ownerNode masih belum didukung kan?
Jika demikian, saya akan dengan senang hati mencoba menambahkannya
Terima kasih !

@lexoyo Saya juga membutuhkan ini dan telah mencoba untuk memeriksanya - tetapi tidak yakin bagaimana ...

Ada file, HTMLStyleElement-impl.js, yang memanggil createStylesheet () di helpers> stylesheet.js dan di sini ada banyak sampah dan TODO.

Tampaknya bagi saya bahwa "cssom" harus digunakan, yang (tampaknya) memiliki apa yang kita butuhkan - tetapi, tidak yakin bagaimana saat ini. Juga saya tidak punya lebih banyak waktu, jadi saya akan menyelidiki lebih lanjut jika saya bisa mendapatkan lebih banyak waktu. Jika Anda mengetahuinya, beri tahu saya!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat