将脚本插入 HTML 字符串

Insert script into HTML string

Im 运行 在节点服务器上并为给定的 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 只是一个字符串,则 .replace() 方法是合适的方法。根据您是否可以控制呈现的 html 模板,您可以添加占位符以将脚本添加到 html.

中的特定位置

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

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

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

应该把脚本写成

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