Javascript jsdom未触发内部<;脚本>;
我尝试对一个页面进行示例,该页面上有一个脚本,可以更改某些元素的CSS,从而使属性根据窗口的宽度在“活动”和“非活动”之间切换 我已经编写了收集和分析页面的nodeJS代码,但我似乎无法触发或检测脚本的触发。我怀疑这与defaultDocumentFeatures有关,但我可能错了 脚本在JSDOM中以默认宽度打开页面,然后将其更改为其他宽度的指定块。这应该会导致输出发生变化,但事实并非如此。我在所有情况下都得到相同的结果。我怀疑页面上的脚本根本没有运行,但需要帮助才能运行 这是我的代码(删除以供公众查看) 根据建议,我将其添加到我的jsDom配置对象中,就在url之后:Javascript jsdom未触发内部<;脚本>;,javascript,css,node.js,jsdom,Javascript,Css,Node.js,Jsdom,我尝试对一个页面进行示例,该页面上有一个脚本,可以更改某些元素的CSS,从而使属性根据窗口的宽度在“活动”和“非活动”之间切换 我已经编写了收集和分析页面的nodeJS代码,但我似乎无法触发或检测脚本的触发。我怀疑这与defaultDocumentFeatures有关,但我可能错了 脚本在JSDOM中以默认宽度打开页面,然后将其更改为其他宽度的指定块。这应该会导致输出发生变化,但事实并非如此。我在所有情况下都得到相同的结果。我怀疑页面上的脚本根本没有运行,但需要帮助才能运行 这是我的代码(删除以
FetchExternalResources : ['script', 'css'],
ProcessExternalResources : ['script', 'css'],
MutationEvents : '2.0',
QuerySelector : false,
但是没有明显的区别。当您使用jsdom.env
时,默认功能集不包括处理脚本
您必须将FetchExternalResources
和ProcessExternalResources
传递到jsdom.env
jsdom.env({
html: input,
url: url,
features: {
FetchExternalResources: ["script", "img", "css", "frame", "iframe", "link"],
ProcessExternalResources: ["script"]
},
created: function (err, window) {
console.log('Created');
},
loaded: function (err, window) {
console.log('Loaded');
}
});
jsdom.env
不使用jsdom.defaultDocumentFeatures
对象。当您使用jsdom.env
时,默认功能集不包括处理脚本
您必须将FetchExternalResources
和ProcessExternalResources
传递到jsdom.env
jsdom.env({
html: input,
url: url,
features: {
FetchExternalResources: ["script", "img", "css", "frame", "iframe", "link"],
ProcessExternalResources: ["script"]
},
created: function (err, window) {
console.log('Created');
},
loaded: function (err, window) {
console.log('Loaded');
}
});
jsdom.env
不使用jsdom.defaultDocumentFeatures
对象。1.0版本是否仍然如此?但我尝试将相关行添加到配置对象,请参阅我的编辑,而且这似乎没有什么不同。@SkipHuffman您是否将属性包装在features
对象中?我不知道您在问什么。我向传递给jsDom的配置对象添加了四个特性属性。env@SkipHuffman请参阅如何正确地向jsdom提供这些参数。1.0版本是否仍然如此?但我尝试将相关行添加到配置对象,请参阅我的编辑,而且这似乎没有什么不同。@SkipHuffman您是否将属性包装在features
对象中?我不知道您在问什么。我向传递给jsDom的配置对象添加了四个特性属性。env@SkipHuffman有关如何正确地向jsdom提供这些参数的信息,请参见。