4

我正在尝试遵循“创建类似浏览器的 BOM/DOM/Window ”部分下https://github.com/tmpvar/jsdom上非常简短的设置说明。不幸的是,在第 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。

4

2 回答 2

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);
于 2012-07-12T13:49:12.993 回答
2

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

于 2012-07-03T18:54:06.463 回答