2015-08-05 20 views
8

Uzak bir HTML'yi manipüle etmeye ve manipüle etmeye çalışıyorum. JSDOM kullanmaya karar verdim, ancak manipüle edilmiş HTML'yi nasıl geri alacağımı anlayamıyorum. Herhangi bir fikir? o zaman sadece content = serializeDocument(window.document) olacağını sizin yukarıdaki örneği uyarlanmasıJSJ, nodeJS'de: İşlenen html'yi nasıl geri alabilirim?

var jsdom = require("jsdom").jsdom; 
var serializeDocument = require("jsdom").serializeDocument; 

var doc = jsdom("<!DOCTYPE html>hello"); 

serializeDocument(doc) === "<!DOCTYPE html><html><head></head><body>hello</body></html>"; 
doc.documentElement.outerHTML === "<html><head></head><body>hello</body></html>"; 

:

jsdom.env({ 
     url: "http://www.cnn.com", 
     scripts: ["http://code.jquery.com/jquery.js"], 
     done: function (err, window) { 
      var $ = window.$; 
      console.log("HN Links"); 
      var src = $(".ghciTopStoryImage1 img").attr('src','http://lorempixel.com/396/220/'); 
      var headline = $(".blkbigheader span").html('header'); 
      var description = $(".blkbigheader").parent().find("p a:eq(0)").html('text'); 

      // not working.... 
      content =$(window.document).html(); 

     } 
    }); 
+2

Benzer bir şeyde kullandım: 'window.document.querySelector ('html') .outerHTML' tüm belgeyi almak için. – Sirko

cevap

9

bazen jQuery cevap

content = window.document.documentElement.outerHTML;