2012-04-28 62 views
0

是否有可能使用jsdom獲取網站的更改/活動DOM?用jsdom獲取當前瀏覽器的DOM?

例如:

客戶

在我test.html文件我有一個按鈕,追加新的<div class="p">要素:

$('#button').click(function(){ 
$('body').append('<div class="p">new</div>'); 
}); 

然後,我有另一個按鈕上調用一個函數服務器(使用NowJS或Socket.IO)。


服務器

在我server.js文件,現在,我要統計所有附加div元素與class="p"

everyone.now.countDiv = function() { 
    var jquery = fs.readFileSync("./jquery16.js").toString(); 

    jsdom.env(
     { 
     html: 'http://localhost:8080/test.html', 
     src: [ 
      jquery 
     ], 
     done: function(errors, window) { 
     var $ = window.$; 
     var len = window.$('.p').length; 
     console.log("Divs: ", len); 
     } 
    }); 
} 

我知道我可以指望的元素客戶端並將其傳遞給服務器。但如果jsdom可以訪問「新/當前」DOM,我很感興趣。

我假設jsdom讀取text.html的DOM,但無法訪問網站的實時DOM!?

+0

請提供一些更好的背景。上面的代碼是否在最初加載頁面時發生(是GET)還是當您單擊頁面中的按鈕時(POST/PUT/ajax)? – k00k 2012-04-28 18:40:56

回答

2

即使jsdom允許您修改模板的DOM,它仍然保留在服務器端。

服務器端與客戶端DOM無關,或者您稱之爲「活動DOM」。

0

你可能想看看NowJS - http://nowjs.com/和Socket.io - http://socket.io/(包含在NowJS中)。

NowJS將允許您共享從服務​​器到客戶端的功能和數據,反之亦然。