我正在使用“html5”node.js库,基于“jsdom”库(https://github.com/aredridel/html5)
我的代码是:
var HTML5 = require('/usr/lib/node_modules/html5/lib/html5'),
Script = process.binding('evals').Script,
util = require('util'),
fs = require('fs');
var p = new HTML5.Parser();
p.parse_fragment(fs.readFileSync('test.xml'));
现在我的p
对象有p.tree.body_pointer._childNodes
NodeList
(尝试p.tree.body_pointer._childNodes.constructor来看看)。
我希望通过我的方法扩展它,以便能够调用p.tree.body_pointer._childNodes.foo()
。
我尝试了NodeList.prototype.foo = function(){return“OK”}但是我得到 NodeList未定义错误消息。
我猜NodeList是在我找不到的内容中声明的。查看源代码,我在core
或dom
下找到了它,但我的代码中都没有这两个代码。
我还扫描了HTML5对象 - 但没有成功。
有什么想法吗?
答案 0 :(得分:1)
我能想到的三个解决方案:
// either ...
var NodeList = p.tree.body_pointer._childNodes.constructor;
// ...or...
var core = require('html5/node_modules/jsdom/lib/jsdom/level3/core');
var NodeList = core.dom.level3.core.NodeList;
// ...or...
var jsdom = require('html5/node_modules/jsdom');
var NodeList = jsdom.dom.level3.core.NodeList;
// ...and then...
NodeList.prototype.foo = function() { ... };
但这三个都不是真的很漂亮。