0

「jsdom」ライブラリに基づいた「html5」node.js ライブラリを使用しています ( 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.constructorp.tree.body_pointer._childNodesNodeList 試してください)。

を呼び出すことができるように、メソッドで拡張したいと思いp.tree.body_pointer._childNodes.foo()ます。

NodeList.prototype.foo = function(){ return "OK"} を試しましたが、NodeList is not definedエラー メッセージが表示されます。

私が見つけられない何かの中で NodeList が宣言されていると思います。ソース コードを調べると、coreorの下に見つかりましたdomが、コードから両方を利用できません。

また、HTML5 オブジェクトをスキャンしましたが、成功しませんでした。

何か案が?

4

1 に答える 1

1

私が考えることができる3つの解決策:

// 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() { ... };

とはいえ、3人とも可愛くない。

于 2013-03-07T17:38:09.293 に答える