jsdom – document.querySelector启用,但从文档中丢失

我想使用JSDom来执行一些服务器方面的DOM操作。 但是,尽pipe显式启用了querySelector,但在创build的文档中未定义:

var jsdom = require('jsdom'); // Yep, we've got QuerySelector turned on jsdom.defaultDocumentFeatures = { QuerySelector: true }; var dom = jsdom.defaultLevel; var document = jsdom.jsdom("<html><body><h1>Hello StackOverflow</h1></body></html>"), window = document.createWindow(); 

然而:

 console.log(document.querySelector) 

返回

 undefined 

我怎样才能使document.querySelector正常使用jsdom?

自己find了这个答案。

JSDom有一个“默认文档”以及对多个附加文档的支持。

我最初的理解是启用QuerySelector在默认文档将启用它的所有文件。 这是不正确的。

我需要在我创build的(非默认)文档上启用QuerySelector。

以下工作代码:

 var jsdom = require('jsdom'); var dom = jsdom.defaultLevel; // QuerySelector must be turned on on the specificdocument we're creating var document = jsdom.jsdom("<html><body><h1>Hello</h1></body></html>", null, { features: { QuerySelector: true } }), window = document.createWindow(); 

运行

 console.log(document.querySelector) 

现在显示function存在。

Interesting Posts