将脚本元素添加到DOM而不执行它

我正在创build一个读取HTML文件的节点脚本,将其作为DOM文档进行处理,然后将其序列化回另一个文件。 我现在正在使用jsdom 。

我需要做的一个操作是添加一个<script>元素,其JavaScript代码将对DOM进一步操作。

问题是,只要我将脚本添加到jsdom节点,jsdom就会运行它,并且第二个操作阶段立即完成,因此输出HTML是错误的。

我以为这只会发生在PhantomJS,而不是jsdom,但我错了。

我没有使用jsdom的特殊约束,我可以切换到PhantomJS或其他任何东西,但是我需要生成一个HTML文件,并且在执行我的Node程序时不需要运行脚本就添加了脚本。

有没有办法做到这一点?

使用这个在jsdom中禁用Javascript执行

 jsdom.defaultDocumentFeatures = { FetchExternalResources: false, ProcessExternalResources: false }; 

如果nodejs在jsdom中也产生错误禁用突变事件

 jsdom.defaultDocumentFeatures = { FetchExternalResources: false, ProcessExternalResources: false, MutationEvents : false };