0

是否可以使用 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 读取 DOM text.html,但无法访问网站的实时 DOM!?

4

2 回答 2

2

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

服务器端与客户端 DOM 或所谓的“实时 DOM”无关。

于 2012-04-29T08:22:41.360 回答
0

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

NowJS 将允许您从服务器到客户端共享函数和数据,反之亦然。

于 2012-04-29T13:12:02.373 回答