2012-04-25 16 views
7

Tôi hiện đang làm việc trên một dự án yêu cầu tôi phải có kiểu được tính toán gửi tới trình duyệt qua JSDOM. Tôi hiện đang tìm kiếm một cách để chèn một số CSS cơ bản vào JSDOM để nó có thể máy tính theo phong cách nội tuyến chính xác (Vâng, tôi biết đó là xấu).Làm thế nào để bạn định kiểu quảng cáo cho JSDOM

Từ những gì tôi đã phát hiện ra tôi có thể sử dụng JSDOM Level 2, nhưng từ đó tôi không thể tìm thấy bất kỳ tài liệu hướng dẫn về cách tiêm phong cách Đây là những gì tôi có cho đến nay

var document = jsdom.jsdom('<!DOCTYPE html><html><head></head><body id="abody" ></body></html>', jsdom.level(2, 'style'), { 
     features : { 
      FetchExternalResources : ['script', 'css'], 
      QuerySelector : true 
     } 
    }); 

Tôi có đã chèn css vào thẻ đầu nhưng không có kết quả. Và tôi biết tôi cũng có thể làm sai mã trên.

Mọi trợ giúp đều tuyệt vời.

+0

Bạn đã thấy điều này ** https: //github.com/yonran/jsdom/blob/style/lib/jsdom/level2/style.js** –

+0

Tôi đã thấy nhưng tôi không thể tìm ra cách gọi những chức năng đó. – Paul

Trả lời

11

Vâng, điều này sẽ có vẻ kinda câm nhưng đây là những gì tôi đã làm:

var path = require('path'); 
    var fs = require('fs'); 
    var mainCss = fs.readFileSync(path.normalize(__dirname + "web_main.css"), 'utf8'); 
    var document = jsdom.jsdom('<!DOCTYPE html><html><meta http-equiv="content-type" content="text/html; charset=utf-8"><head></head><body id="abody" ></body></html>', jsdom.level(3, 'index'), { 
     features : { 
      FetchExternalResources : ['script', 'css'], 
      QuerySelector : true 
     } 
    });  
    var window = document.createWindow(); 
    var head = document.getElementsByTagName('head')[0]; 
    style = document.createElement("style"); 
    style.type = 'text/css'; 
    style.innerHTML = mainCss; 
    head.appendChild(style); 

Vì vậy, về cơ bản tất cả tôi đã thay đổi được cách di chuyển mức 3 chỉ số, và thay vì trực tiếp có nó trong bắt đầu html , Sau đó tôi nối nó.

Nó khá đơn giản và tôi hy vọng nó sẽ giúp người khác ra ngoài.

Các vấn đề liên quan