jsdom document.createWindow()为非空文档返回空

时间:2012-07-02 21:02:10

标签: javascript node.js jsdom

我正在尝试按照{{3>}下“创建类似浏览器的BOM / DOM /窗口”部分的简短设置说明进行操作。不幸的是,在第3行(.createWindow步骤)之后,我执行console.log(window)并打印一个空对象。那里至少应该有window.document,但没有。似乎document.createWindow的行为与jsdom.createWindow相同。

到目前为止,这是我的代码:

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

document = jsdom("<html><head></head><body>hello world</body></html>");
window = document.createWindow();

console.log(window); // output: {}

console.log(window.document.innerHTML); // error, cannot read innerHTML on undefined

那么,我做错了什么蠢事?

正确创建了FYI文档。打印它会输出一个非常大的物体。

我正在使用Mac。

2 个答案:

答案 0 :(得分:4)

var jsdom = require('jsdom').jsdom;
document = jsdom('<!doctype html><html><body>hello jsdom</body></html>');
window = document.createWindow();
console.log(window);
var txt = window.document.body.innerHTML;
console.log(txt);

答案 1 :(得分:2)

问题是由于Contextify的安装错误造成的。我习惯在Windows或* NIX和Mac上开发,由于* NIX终端,假设我会有类似Make的东西。通过使用命令行工具安装Xcode解决了问题,该工具安装Make等,解决了Contexify的安装错误,解决了整体问题。