Rendertron 和 <script> 标签
Rendertron & <script> tags
我开始将 Rendertron 用于 Angular 6 应用程序。我注意到它不呈现 <script>
标签。您知道如何配置它吗?
我需要这个的原因是 JSON-LD 标记。
我也将 injectShadyDom
设置为 true;它默认为假。我不知道这是否有帮助,尽管这更适用于 Web 组件。
是的,这可以通过更新源代码来实现。有一个 stripPage() 函数可以删除所有脚本标签。此函数位于 renderer.ts 文件的第 32 行。通过一个小技巧,我可以跳过带有 type="application/ld+json" 的标签。是时候清理它、使其可配置并提交拉取请求了!
原函数
function stripPage() {
const elements = document.querySelectorAll('script, link[rel=import]');
for (const e of Array.from(elements)) {
e.remove();
}
}
修改函数
function stripPage() {
const elements = document.querySelectorAll('script, link[rel=import]');
for (const e of Array.from(elements)) {
if (e.getAttribute('type') !== 'application/ld+json') {
e.remove();
}
}
}
我开始将 Rendertron 用于 Angular 6 应用程序。我注意到它不呈现 <script>
标签。您知道如何配置它吗?
我需要这个的原因是 JSON-LD 标记。
我也将 injectShadyDom
设置为 true;它默认为假。我不知道这是否有帮助,尽管这更适用于 Web 组件。
是的,这可以通过更新源代码来实现。有一个 stripPage() 函数可以删除所有脚本标签。此函数位于 renderer.ts 文件的第 32 行。通过一个小技巧,我可以跳过带有 type="application/ld+json" 的标签。是时候清理它、使其可配置并提交拉取请求了!
原函数
function stripPage() {
const elements = document.querySelectorAll('script, link[rel=import]');
for (const e of Array.from(elements)) {
e.remove();
}
}
修改函数
function stripPage() {
const elements = document.querySelectorAll('script, link[rel=import]');
for (const e of Array.from(elements)) {
if (e.getAttribute('type') !== 'application/ld+json') {
e.remove();
}
}
}