Javascript jsdom不';网页中的t进程脚本
我对nodejs是新手。我想使用jsdom解析一些可能包含脚本代码的网页。但我得到的错误是函数或变量没有定义。有人能给我一些关于这方面的指导吗 我的代码Javascript jsdom不';网页中的t进程脚本,javascript,html,node.js,jsdom,Javascript,Html,Node.js,Jsdom,我对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(e
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>
它报告loads函数没有定义,但它实际上是在网页中声明的
任何人都可以给出一些建议,或者只是简单地告诉我jsdom无法处理页面中嵌入的脚本。以下是您想要的代码:
var fs = require('fs');
var jsdom = require('jsdom');
var doc = jsdom.jsdom(fs.readFileSync("a.html"), 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() {
console.log(window.a);
console.log(window.$().jquery); //jquery version
});
您的代码将无法工作,因为
jsdom.env
方法不处理脚本。请注意,您应该使用一个很棒的npm库
试试这个:
var http = require('http'),
jsdom = require('jsdom'),
request = require('request');
var server = http.createServer(function (request, response) {
getPage("http://isohunt.com/torrents/?iht=-1&ihq=life+is+beautiful", function (body) {
jsdom.env({
html: body,
scripts: ['http://code.jquery.com/jquery-1.6.min.js']
}, function(err, window){
var $ = window.jQuery;
//your code goes here
});
})
});
server.listen(3000);
function getPage(someUri, callback) {
request({uri : someUri}, function (error, response, body) {
callback(body);
});
}
var http = require('http'),
jsdom = require('jsdom'),
request = require('request');
var server = http.createServer(function (request, response) {
getPage("http://isohunt.com/torrents/?iht=-1&ihq=life+is+beautiful", function (body) {
jsdom.env({
html: body,
scripts: ['http://code.jquery.com/jquery-1.6.min.js']
}, function(err, window){
var $ = window.jQuery;
//your code goes here
});
})
});
server.listen(3000);
function getPage(someUri, callback) {
request({uri : someUri}, function (error, response, body) {
callback(body);
});
}