将脚本插入 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>
Im 运行 在节点服务器上并为给定的 URL
返回 HTMLserver.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>