javascript - 使用 Angular Universal 延迟加载外部 JS 文件

标签 javascript angular server-side-rendering angular-universal

https://maps.googleapis.com/maps/api/js?libraries=places&key=XXX

这是在index.html文件中,但我想延迟加载这个脚本,因为该模块是延迟加载的,并且对于所有用户来说实际上并不是必需的。 我无法使用直接访问 DOM 并附加脚本 el 的技巧。因为我想使用 Angular Universal (SSR)。

最佳答案

即使您使用 SSR,也可以访问 DOM。将其添加到您的延迟加载模块模块或延迟加载模块的组件之一

import {DOCUMENT} from "@angular/common";
import {Renderer2} from '@angular/core';


constructor(@Inject(DOCUMENT) private document: any, private renderer: Renderer2)
{
}

constructor()
{

    const scriptElt = this.renderer.createElement('script');
    this.renderer.setAttribute(scriptElt, 'type', 'text/javascript');
    this.renderer.setAttribute(scriptElt, 'src', 'yourJSFile.js');
    this.renderer.appendChild(this.document.head, scriptElt);
}

关于javascript - 使用 Angular Universal 延迟加载外部 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61204847/

相关文章:

ionic-framework - 如何在 ionic 2中插入图像

javascript - SSR React应用程序的渲染过程和异步代码执行

facebook - 如何在 nuxt.js (vue.js) 中配置动态 og 标签?

javascript - Google Chrome 的 "New Tab"iframe 是如何工作的?

javascript - 如何检查音频直播是否在给定URL后面有效?

javascript - 使用javascript用图片而不是数字掷骰子的程序

angular - 如何将 2 个参数传递给 Angular 中的 EventEmitter?

javascript - 带有 Angular 和 node.js 的 JSON

javascript - NextJS - onClick 时调用 js 函数

JavaScript 对象操作问题