如何使用node.js加载带有JS依赖项的页面?

时间:2012-02-18 22:50:34

标签: javascript node.js

我使用node-request进行http调用,使用jsdom遍历DOM。

我遇到的问题是,当通过Javascript加载页面内容时,请求和jsdom将无法获取已加载内容的页面。

以下是您可以尝试的示例:

var request = require('request'),
    jsdom = require('jsdom');

request({ uri:'http://koesbong.com/clients/self/sandbox/nodejs-test/' }, function (error, response, body) {
  if (error && response.statusCode !== 200) {
    console.log('Error when contacting google.com')
  }

  jsdom.env({
    html: body,
    scripts: [
      'http://code.jquery.com/jquery-1.7.1.min.js'
    ]
  }, function (err, window) {
    var $ = window.jQuery;

    // jQuery is now loaded on the jsdom window created from 'agent.body'
    console.log($('p').text());
  });
});

如果您在浏览器中加载http://koesbong.com/clients/self/sandbox/nodejs-test/,您将在页面上看到“测试”,这是使用document.ready上的jquery附加的。但是在上面的脚本中,console.log不会显示任何内容。

如何让脚本获取页面内容?

0 个答案:

没有答案