Tengo una secuencia de comandos de anuncios de terceros que inyecto en mi componente nuxt usando postscribe. El sitio web funciona bien. Sin embargo, si trato de navegar fuera de la página sin dejar que el script termine de cargarse. Recibo el bucle de error a continuación (en la consola del navegador). El error se muestra cada milisegundo y no desaparece a menos que actualice la página.
invoke.js:1 Uncaught TypeError: Cannot read properties of null (reading 'document')
Este es el código que inyecto usando postscribe
this.$postscribe('#myDivId', ` <script type="text/javascript"> atOptions = { 'key' : 'fiajiewfoj3jiosfo', 'format' : 'iframe', 'height' : 90, 'width' : 728, 'params' : {} }; document.write('<scr' + 'ipt type="text/javascript" src="http' + (location.protocol === 'https:' ? 's' : '') + '://script-src.com/12345767890/invoke.js"></scr' + 'ipt>'); <\/script>` );Intenté inyectarlo usando javascript de vainilla, pero eso no funcionó tan bien.
let a= document.getElementById("myDiv") let basePath = document.createElement('script') basePath.type = "text/javascript" basePath.setAttribute('async', 'true'); basePath.innerHTML = `<script type="text/javascript"> atOptions = { 'key' : 'fiajiewfoj3jiosfo', 'format' : 'iframe', 'height' : 90, 'width' : 728, 'params' : {} }; document.write('<scr' + 'ipt type="text/javascript" src="http' + (location.protocol === 'https:' ? 's' : '') + '://script-src.com/12345767890/invoke.js"></scr' + 'ipt>'); <\/script>` a.appendChild(basePath) Tampoco está arreglado, si lo ejecuto con if (process.client), es decir if(process.client){this.$postscribe.......}
Sospecho que tiene algo que ver con document.write() pero no tengo experiencia con document.write() y su comportamiento.
Nota: no lo puse en el encabezado () porque quiero que esto aparezca en un div/componente en particular.