【问题标题】:Insert script into HTML string将脚本插入 HTML 字符串
【发布时间】:2022-01-02 17:51:24
【问题描述】:

我在节点服务器上运行并返回给定 URL 的 HTML

server.get('*', async (request, response) => {
  const url = request.protocol + '://' + request.get('host') + request.originalUrl;

  const { html } = await renderPage(url, {
    manifest,
    preload: true,
    request,
    response
  });

  //TODO: Insert script into html string in head

  response.end(html);
});

但是,我想要的是我可以在 response.end() 之前操作 HTML,例如将脚本插入到 HTML 字符串的头部...关于如何执行此操作的任何想法?

起初我在想我可以使用 html.replace(),但我认为这不是正确的方法...

任何帮助将不胜感激:)

【问题讨论】:

  • 你应该先准备好你的html,在那里你可以包含任何你喜欢的脚本。只需将更改后的值传递给 html

标签: javascript node.js ecmascript-6


【解决方案1】:

不知道类型,但如果 html 只是一个字符串,.replace() 方法是一种合适的方法。根据您是否可以控制呈现的 html 模板,您可以添加一个占位符以将脚本添加到 html 中的某个位置。

如果您无法控制,我宁愿将其附加到正文的末尾。

const script = `<script src="your/fancy/script.js" />`;

html.replace(/(<\s*\/\s*body)/, `${scripts}\n$1`);

应该把脚本写成这样

  <div>Some content before</div>
<script src="your/fancy/script.js" />
</body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-13
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多