Size: a a a

Angular-universal-ru

2020 March 06

IF

Igor Filippov in Angular-universal-ru
Yurii Gavdan
спасибо,
а это идея, сейчас посмотрю примеры,
единственное есть сомнения -заработает ли это сразу в SSR режиме, или оно динамически будет его инджектить, после загрузки страницы
У нас работает
источник

YG

Yurii Gavdan in Angular-universal-ru
Igor Filippov
У нас работает
Спасибо! Уже пробую. :)
источник

IF

Igor Filippov in Angular-universal-ru
Делаешь внутри isPlatformServer
источник

YG

Yurii Gavdan in Angular-universal-ru
Igor Filippov
Делаешь внутри isPlatformServer
Ок, понял, thanks
источник

YG

Yurii Gavdan in Angular-universal-ru
Igor Filippov
У нас работает
Работает, ура! :)
источник

IF

Igor Filippov in Angular-universal-ru
Yurii Gavdan
Работает, ура! :)
👍
источник

nt

nur tlek in Angular-universal-ru
Yurii Gavdan
Работает, ура! :)
как сделал, можешь скинуть скрин
источник

YG

Yurii Gavdan in Angular-universal-ru
@nico я вот кусочек скопировал, сейчас пересобираю и еще буду рефакторить

только нужно поправить: this.renderer2.appendChild(this.document.head, srcScriptBody);
источник

YG

Yurii Gavdan in Angular-universal-ru
@tylek обновил,
проверил - все четко работает
у меня 8й ангуляр
источник

nt

nur tlek in Angular-universal-ru
благодарю
источник

YG

Yurii Gavdan in Angular-universal-ru
@tylek

Пришлось еще раз обновить...

private injectGTM() {
   const {
     id,
     isEnabled,
     blackList,
   } = this.config['GTM'];
   if (!isEnabled) {
     return;
   }

   if (isPlatformServer(this.platformId)) {
     // ### GTM > head > script
     const script = this.renderer2.createElement('script');
     script.type = 'text/javascript';
     script.text = `
     (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
       new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
       j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
       'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
     })(window,document,'script','dataLayer','${id}');
     `;
     this.renderer2.appendChild(this.document.head, script);

     // ### GTM > body > iframe
     const iframe = this.renderer2.createElement('iframe');
     iframe.src = https://www.googletagmanager.com/ns.html?id=${id};
     iframe.height = 0;
     iframe.width = 0;
     iframe.style = 'display:none;visibility:hidden';
     // ###
     this.renderer2.appendChild(this.document.body, iframe);
   }
 }

____

PS: здесь есть проблема, с iframe еще, его нужно обворачивать в <noscript> - пока без этого сделал, иначе вставит пустой noscript без iframe

PS2: Sorry за спам, если что. :)

https://developers.google.com/tag-manager/quickstart?hl=ru
источник
2020 March 07

nt

nur tlek in Angular-universal-ru
thanks
источник

KV

Karpov Vladimir in Angular-universal-ru
Парни, привет.
Если в этой строке
ServiceWorkerModule.register('/ngsw-worker.js', { enabled: true }),
в app.browser.module.ts поставить
enabled:true
то при клиентском билде и запуске через Dockerfile.csr PWA должно отрабатывать корректно ?
источник

nt

nur tlek in Angular-universal-ru
по идее
источник

nt

nur tlek in Angular-universal-ru
да
источник

nt

nur tlek in Angular-universal-ru
у меня так и стоит
источник

KV

Karpov Vladimir in Angular-universal-ru
у тебя на 9 ангуларе стартер?
источник

nt

nur tlek in Angular-universal-ru
у меня 8
источник

KV

Karpov Vladimir in Angular-universal-ru
я на 9
источник

KV

Karpov Vladimir in Angular-universal-ru
нашёл кажется в чем дело
источник