¿Cómo inyectar contenido en `before-script-load`?

Me gustaría inyectar algo de javascript en la región before-script-load.

¿Es posible lograr esto a través de un tema o un componente temático?

3 Me gusta

¿necesita ejecutarse en ese lugar exacto (orden de ejecución)? el navegador cargará todos esos scripts de la etiqueta head independientemente de su orden. puedes agregar el script en el área de la etiqueta head yendo a la sección de edición de CSS/HTML de un tema en admin-customize-themes. si tu tema está alojado y no permite personalización, puedes agregarlo con un componente de tema (o al archivo de la etiqueta head del repositorio si es tu tema).

2 Me gusta

Esa es una página de desarrollo que no se utiliza en producción.

En cuanto a las páginas reales de Discourse, los temas pueden inyectar contenido en el elemento head sin problemas, pero sin mucho control sobre el lugar exacto donde ocurre, pero como dijo @Lilly, esto no debería ser un problema.

Si puedes darnos más detalles sobre lo que quieres lograr, podemos ofrecerte algunas sugerencias.

2 Me gusta

Creo que quieres ponerlo en un inicializador.

Échale un vistazo a Split up theme Javascript into multiple files

Pero Falco sabe mucho más sobre eso que yo.

2 Me gusta

Gracias @Lilly, @Falco y @pfaffman.

Creo que este es mi principal problema.

Como ejemplo, necesito asegurarme de que el objeto dataLayer que establezco se agregue siempre a la página antes que cualquier otro script, si es posible. Especialmente antes de que se cargue GTM (ya sea a través del incorporado o de un cargador personalizado).

En mi entorno de desarrollo local, intenté utilizar las inicializaciones, los pre-inicializadores y la plantilla head_tag.html;
Y dentro de la plantilla head_tag.html, intenté envolver mi código con las etiquetas <script></script> y <script type="text/discourse-plugin" version="0.1"></script>.

Con cada uno de ellos puedo ver el orden de arranque relativo entre sí. Pero aparte de esto, no parece que tenga control sobre el orden de los scripts cargados.

3 Me gusta