This website collects cookies to deliver better user experience
@Injectable({providedIn: 'root'}) export class ExternalLibrariesService { static injectLib(src: string): void { const script = document.createElement('script'); script.src = src; document.body.appendChild(script); } }
@Component({ selector: 'app-root', template: ``, }) export class AppComponent implements OnInit { private externalLibs = [ 'https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js', 'https://code.jquery.com/jquery-3.6.0.slim.min.js' ]; ngOnInit(): void { this.externalLibs.forEach(libSrc => ExternalLibrariesService.injectLib(libSrc)); } }
bootstrap
jQuery
integrity
crossorigin
static injectLib(src: string, integrity?: string, crossOrigin?: string): void { const script: HTMLScriptElement = document.createElement('script'); script.src = src; if (integrity) { script.integrity = integrity; } if (crossOrigin) { script.crossOrigin = crossOrigin; } document.body.appendChild(script); }
interface IExternalLib { src: string; integrity?: string; crossOrigin?: string; }
@Component({ selector: 'app-root', template: ``, }) export class AppComponent implements OnInit { private externalLibs: IExternalLib[] = [ { src: 'https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js', integrity: 'sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo', crossOrigin: 'anonymous' }, { src: 'https://code.jquery.com/jquery-3.6.0.slim.min.js', integrity: 'sha256-u7e5khyithlIdTpu22PHhENmPcRdFiHRjhAuHcs05RI=', crossOrigin: 'anonymous' } ]; ngOnInit(): void { this.externalLibs.forEach(lib => ExternalLibrariesService.injectLib(lib.src, lib.integrity, lib.crossOrigin)); } }
39
0