JSDOM

2012-04-25 12 views
7

için stil sayfalarını nasıl ekliyorsunuz Şu anda JSDOM aracılığıyla tarayıcıya gönderilen hesaplanmış stillere sahip olmamı gerektiren bir proje üzerinde çalışıyorum. Şu anda bazı temel CSS'leri JSDOM içine enjekte etmenin bir yolunu arıyorum, böylece doğru satır içi stil bilgisayarını kullanabilirim (Evet, bu kötü olduğunu biliyorum).JSDOM

itibaren ben JSDOM Düzey 2 kullanabilirsiniz, ancak oradan ben bu ben ne var stilleri enjekte konusunda herhangi bir belge bulamıyor neler bulduğunuzu şimdiye kadar ben

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

css baş etiketine yerleştirildi, ancak boşuna. Ve biliyorum ki yukarıdaki kodu yanlış yapabilirim.

Herhangi bir yardım harika olurdu.

+0

Bunu gördünüz mü ** https: //github.com/yonran/jsdom/blob/style/lib/jsdom/level2/style.js** –

+0

Gördüm ama bir yol bulamadım Bu fonksiyonları çağır. – Paul

cevap

11

Eh, bu gidiyor tür dilsiz geliyor ama bu ne yaptı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); 

Böylece temelde değişti tüm başlangıç ​​bunu sahip doğrudan ve 3 endeksine düzeyini harekete geçirmeli edildi html Sonradan ekledim.

Oldukça basit ve umarım başka birine yardım eder.

İlgili konular