gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 01:05:27 24 4
gpt4 key购买 nike

我正在创建一个 Node 脚本,它读取 HTML 文件,将其作为 DOM 文档进行操作,并将其序列化回另一个文件。我正在使用 jsdom现在。

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

问题是,只要我将脚本添加到 jsdom Node ,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
};

关于html - 将脚本元素添加到 DOM 而不执行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39962342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com