Tôi mới làm quen với các nút. Tôi muốn sử dụng jsdom để phân tích một số trang web có thể chứa mã script bên trong. Nhưng tôi đã nhận lỗi nói rằng hàm hoặc biến không được xác định. Bất cứ ai có thể đưa ra một số hướng dẫn về điều này.jsdom không xử lý tập lệnh bên trong trang web
mã của tôi
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);
}
});
và trang html đây
<html>
<head>
<script>
var a = 0;
function loads(){
a=1000;
}
</script>
</head>
<body onload='loads()'>
</body>
</html>
và nhận được thông báo lỗi dưới đây
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)
Nó báo cáo tải chức năng đã không được xác định, nhưng nó thực sự là được khai báo trong trang web.
Bất kỳ ai có thể đưa ra một số gợi ý hay chỉ đơn giản là cho tôi biết jsdom không thể xử lý các tập lệnh được nhúng trong trang.
Cảm ơn Mihai rất nhiều, nó hoạt động tốt. – user966085