estoy creando un sitio web usando nunjucks y express, es el rey del sitio web de blogs y el contenido proviene de prismic. Quiero cargar un archivo de secuencia de comandos para el formulario de campane activo cuando el usuario navega desde la página de la lista de blogs a cualquier página de detalles del blog, después de navegar a la página de detalles. obtendrá la URL del script de prismic y quiero ejecutar ese script en un archivo HTML.
funciona mientras se actualiza la página de detalles, pero no funciona cuando se navega de una página a otra.
aquí hay un código de muestra de mi sitio web
--- layout: _layout.njk permalink: "/{{ post.blogType }}/{{ post.uid }}/" pagination: alias: post data: posts size: 1 addAllPagesToCollections: true --- {% set params = item.primary.sumo_form_id.split("=") %} <div class="_form_{{params[1]}}"> </div> <script src="{{item.primary.sumo_form_id}}" type="text/javascript" charset="utf-8" defer> </script>Después de tanto tiempo he encontrado la solución. no es la solución adecuada, pero está funcionando en este momento.
Página donde estás usando recapcha. (archivo njk)
<div id="recaptcha" data-callback="recaptchaOnload" data-sitekey="SITE_KEY" data-size="invisible" class="g-recaptcha"> </div>índice.njk
<head> <script> setInterval(()=>{ recaptchaOnload(); // function calls every 20 Seconds. }, 20000) function recaptchaOnload() { try { if (document.getElementsByClassName("g-recaptcha").length > 0) { // Whenever route changes this function is going to check for id="g-recaptcha". // if its found recapcha code renders grecaptcha.render("recaptcha", { sitekey: "SITE_KEY", callback: function () { console.log("recaptcha callback"); }, }); } } catch (e) { return; } } </script> <script src='https://www.google.com/recaptcha/api.js?onload=recaptchaOnload&render=explicit' async defer> </head>P - ¿Por qué tengo que usar esta funcionalidad?
A - nunjucks son plantillas del lado del servidor. entonces, una vez que se inicializan en el front-end y si hemos agregado scripts en una ruta diferente a la principal, no se inicializará, si cambiamos a una página nueva sin redirección (actualización de página). Entonces, en tales condiciones, esto va a ser útil.