私は:)Node.jsのjsdomエラー
を仕事にjsdomを取得しようとしていますがここでは、コードです:
var jsdom = require("jsdom");
var request = require("request");
var fs = require('fs');
var jquery = fs.readFileSync("./jquery-1.7.2.js", 'utf-8');
request({ uri:'http://nodejs.org/dist/' }, function (error, response, body) {
if (error && response.statusCode !== 200) {
console.log('HTTP request error... '+error);
}
jsdom.env({
html: body,
scripts: [
jquery
],
done: function(errors, window) {
console.log('done');
}
});
});
そして、ここでエラーがあります:
jsdom.js:171
features = JSON.parse(JSON.stringify(window.document.implementation._fea
^
TypeError: Cannot read property 'implementation' of undefined
場合、私がチェックしていますページがフェッチされ、jqueryのlibが解析されている場合、それらは存在します。
我々はjsdom.jsの実装を見ることができる:
[snip]
exports.env = exports.jsdom.env = function() {
[snip]
window = exports.html(html, null, options).createWindow(),
features = JSON.parse(JSON.stringify(window.document.implementation._features)),
docsLoaded = 0,
[snip]
.createWindowは()...
成功していないと私はCloud9上でそれを実行しているようです。
助けを歓迎します。
nodeとjsdomのどのバージョンですか?ここではノードv0.6.16とjsdom 0.2.14で動作します。 (ところで、 'toString()'呼び出しの代わりに 'fs.readFileSync(path、 'utf8')'を実行することもできます( 'utf8 'を渡すべきでしょう)。 –
ノードのバージョンは0.6.8、jsdomのバージョンは0.2.14です。 – kal3v
コードがサーバー側からのものであれば "ウィンドウ"はブラウザ側からのみだと思う – ZiTAL