我正在尝试按照{{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。
答案 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的安装错误,解决了整体问题。