jsdom не обрабатывает скрипт внутри веб-страницы #39;

Я новичок в nodejs. Я хочу использовать jsdom для анализа некоторых веб-страниц, которые могут содержать код сценария внутри. Но я получил сообщение об ошибке, что функция или переменная не определены. Может ли кто-нибудь дать некоторые указания по этому поводу.

мой код

var jsdom = require('jsdom');

jsdom.env({
  html: 'http://10.200.0.10:8080/test/a.html',
  scripts: [
    'http://code.jquery.com/jquery-1.5.min.js'
  ],
  done: function(errors, window) {
    var $ = window.$;
    window.onload();
    console.log(window.a);
  }
});

и html-страница здесь

<html>
<head>
    <script>
    var a = 0;
    function loads(){
        a=1000;
    }
    </script>
</head>
<body onload='loads()'>
</body>
</html>

и получил сообщение об ошибке ниже

dfddddfdf
undefined:1: ReferenceError: loads is not defined
loads()
^
ReferenceError: loads is not defined
    at unknown source
    at /root/node_modules/jsdom/node_modules/contextify/lib/contextify.js:10:24
    at /root/node_modules/jsdom/lib/jsdom/level1/core.js:1024:50
    at /root/testnode.js:18:12
    at Array.0 (/root/node_modules/jsdom/lib/jsdom.js:199:39)
    at EventEmitter._tickCallback (node.js:192:40)

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
ReferenceError: loads is not defined
    at unknown source
    at /root/node_modules/jsdom/node_modules/contextify/lib/contextify.js:10:24
    at /root/node_modules/jsdom/lib/jsdom/level1/core.js:1024:50
    at /root/testnode.js:18:12
    at Array.0 (/root/node_modules/jsdom/lib/jsdom.js:199:39)
    at EventEmitter._tickCallback (node.js:192:40)

Он сообщает, что функция загрузки не была определена, но на самом деле она была объявлена ​​на веб-странице.

Может ли кто-нибудь дать несколько советов или просто сказать мне, что jsdom не может обработать скрипты, встроенные в page.

5
задан mihai 12 May 2012 в 14:17
поделиться