Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 1x 1x 1x 1x 1x 1x 1x 129x 129x 129x 129x 129x 129x 129x 129x 129x 129x 129x 129x 129x 43x 43x 129x 129x 43x 43x 129x 129x 129x 129x 129x 129x 129x 1x 1x 43x 43x 43x 43x 43x 1x 1x 43x 43x 43x 43x 43x 43x 43x 43x 1x | import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class ScriptLoaderService {
loadScript(
src: string,
async: boolean = true,
defer: boolean = true,
crossorigin?: string,
nonce?: string,
): Promise<void> {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = src;
script.async = async;
script.defer = defer;
if (crossorigin) {
script.crossOrigin = crossorigin;
}
if (nonce) {
script.nonce = nonce;
}
script.onload = () => resolve();
script.onerror = () => reject(new Error(`Script load error for ${src}`));
document.head.appendChild(script);
});
}
loadGoogleScripts(): Promise<void[]> {
return Promise.all([
this.loadScript('https://accounts.google.com/gsi/client'),
this.loadScript('https://apis.google.com/js/platform.js'),
]);
}
loadFacebookScript(): Promise<void> {
return this.loadScript(
'https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v20.0&appId=313716855168254',
true,
true,
'anonymous',
'EryCSHqV',
);
}
}
|