【发布时间】:2015-04-12 09:43:38
【问题描述】:
我正在尝试编写一些 DOM 解析代码以从 node REPL environment 运行。以下是 SSCCE:
"use strict";
var jsdom = require("jsdom");
var html="<a></a>";
function parse(html, x) {
jsdom.env(html, function(errors, window) {
x.window = window;
});
}
var x = {};
parse(html, x);
console.log(x.window);
这个想法是,在调用 parse 函数后,我的 x 对象中将提供已解析的 DOM。
当我将上述代码放入文件 j.js 并从 REPL 加载时,我得到:
> .load j.js
> "use strict";
'use strict'
> var jsdom = require("jsdom");
undefined
> var html="<a></a>";
undefined
> function parse(html, x) {
... jsdom.env(html, function(errors, window) {
..... x.window = window;
..... });
... }
undefined
> var x = {};
undefined
> parse(html, x);
undefined
> console.log(x.window);
undefined
undefined
>
为什么代码分配x.window属性失败?
【问题讨论】:
-
@jsalonen 我最终尝试获取与
html变量对应的DOM 对象并在其中进行一些树导航。这是一个SSCCE。也许有更好的方法来使用jsdom获取 DOM 我刚刚想出了这个parse函数作为抽象jsdom逻辑的一种方法,并有一种方法可以将值传达给调用上下文。
标签: javascript node.js dom jsdom