Javascript 节点列表的原型扩展
我正在使用基于“jsdom”库()的“html5”node.js库 我的代码是:Javascript 节点列表的原型扩展,javascript,node.js,Javascript,Node.js,我正在使用基于“jsdom”库()的“html5”node.js库 我的代码是: 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(
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\u指针。\uNodeList的childNodes
(请尝试p.tree.body\u pointer.\u childNodes.constructor查看)
我想通过我的方法扩展它,以便能够调用p.tree.body\u pointer.\u childNodes.foo()
我尝试了NodeList.prototype.foo=function(){return“OK”},但得到了未定义NodeList错误消息
我猜NodeList是在我找不到的东西里面声明的。查看源代码时,我在core
或dom
下找到了它,但我的代码中没有这两者
我还扫描了HTML5对象,但没有成功
有什么想法吗?我能想到三种解决方案:
不过,这三个都不是很漂亮
// 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() { ... };