【问题标题】:How to run the scripts in html document and get resulting document in node?如何在 html 文档中运行脚本并在节点中获取结果文档?
【发布时间】:2021-10-31 04:51:52
【问题描述】:

我在 node 中有一个 string 和一个 html 文档,如下所示:

<p id="text">First text</p>
<script>
    document.getElementById('text').innerHTML = 'Second text';
</script>

我想在运行这样的脚本后得到生成的 html 文档

<p id="text">Second text</p>
<script>
    document.getElementById('text').innerHTML = 'Second text';
</script>

我不知道该怎么做,也没有找到任何可以提供帮助的东西。 脚本比较复杂,这是一个例子

【问题讨论】:

  • 那么,您想在将 html 文档提供给客户端之前执行一次脚本标记吗?
  • 你能解释一下这行是什么意思,“我在节点中有一个字符串”吗?我没有收到这条线。
  • 是的,我不想捕获 html,我需要先运行脚本
  • 你在使用任何类型的模板引擎吗?
  • @SanskarBansal,它不是一个文件,它是一个带有 html 的模板字符串

标签: javascript html node.js


【解决方案1】:

您可以查找名为 JSDOM 的包。

const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<p id="text">First text</p>
<script>
    document.getElementById('text').innerHTML = 'Second text';
</script>
`, { runScripts: "dangerously" }
); 

console.log(dom.window.document.body.innerHTML); 

您可以在此网址上查看有关此软件包的更多详细信息:https://www.npmjs.com/package/jsdom

【讨论】:

  • 现在你可以用这个dom.window.document.body.innerHTML做任何你想做的事,你可以把它保存在文件中,提供给你的客户,我想这就是你要找的。​​span>
  • 谢谢,这正是我想要的
猜你喜欢
  • 2019-12-28
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
相关资源
最近更新 更多