使用jsdom时出现“调度事件”DOMNodeInsertedIntoDocument“失败”错误

我正在考虑使用JSDom的项目,需要刮一个网站。
我开始尝试一个亚马逊网页。 这是一个示例代码:

jsdom.env(url, ["http://code.jquery.com/jquery.js"], function(errors, window) { console.log(errors); var $ = window.$, results = parseResultsPage($); //do some stuff window.close(); }); 

起初,我有一个if(errors.length > 0) ...子句,但事实certificate, errors总是充满的。 即使拼抢本身有效,我得到所有我需要的结果,我总是得到:

 [ { type: 'error', message: 'Dispatching event \'DOMNodeInsertedIntoDocument\' failed', data: { error: [Object], event: [Object] } } ] 

这意味着我无法有效地testing错误。 简单地忽略这个错误对我来说是不安全的。

有什么build议么? 这可能是亚马逊相关的问题吗? (他们在他们的页面上使用jQuery 1.2.6)

更新
在JSDom github页面( 链接 )上提交的问题。

那么,在使用node-inspector的debugging会话之后,我设法找出了Amazon页面上引发错误的那段代码。 这是一个长内联<style>元素中的CSS规则,JSDom不知道如何处理:

 <style type="text/css"> ... .cust-rec-aui-button @-moz-document url-prefix(){ .cust-rec-aui-button .a-button .a-button-text{ line-height:29px } .cust-rec-aui-button .a-button.a-button-small .a-button-text{ line-height:21px } } ... </style> 

起初,我认为这是一个CSS语法错误(虽然JSDom不应该引发这些exception),但是后来我发现一些资源( 这里是一个 ),说这是完全合法的。

所以,在与JSDom的开发人员进行沟通之后( 请参阅Github上的问题以获取整个通信以及重现问题的代码),它已经被声明为一个错误,并希望得到修复!