jsdom不解析javascript

时间:2013-12-17 18:43:54

标签: javascript jquery node.js jsdom

为了进一步解释标题,似乎jsdom似乎没有解析外部/内部javascript。不管怎样,或者我在这里完全遗漏了一些东西。

以下片段假设访问hulu并打印出search-container div,我相信它是通过javascript动态添加到网站的。代码似乎不起作用。

我不明白为什么它不起作用。任何帮助,将不胜感激。

段:

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

var url = "http://www.hulu.com";


// Catch any errors.
process.on('uncaughtException', function (err) {
    console.log('Caught exception: ' + err);
});

// Request page from server.
request(url, function(error, response, body) {
    if (error)  return;

  if (!error && response.statusCode == 200) {
    console.log("Loaded webpage, parsing");
    jdom(body); // Parse page into jsdom
  }
})

function jdom(body) {

    var doc   = jsdom.jsdom(body, null, {
        features: {
            FetchExternalResources   : ['script'],
            ProcessExternalResources : ['script'],
            MutationEvents           : '2.0',
        }
    });

    var window = doc.createWindow();
    jsdom.jQueryify(window, "http://code.jquery.com/jquery-1.5.min.js", function(window)     {

        //var $ = window.$;
        var $ = window.jQuery;
        var document = window.document;

        console.log(window.$().jquery); // print jquery version


        $(document).ready(function() {
            //console.log( $('#search-container').html() );

            setInterval(function() { // waitForElement()

                console.log( $('#search-container').html() );

            }, 2000);

        });

    });

}


结果是每2秒null


应该注意的是,在上面的代码运行几秒后就会发现异常。

例外:
Caught exception: TypeError: Cannot read property 'currentView' of undefined

0 个答案:

没有答案