Estou tentando carregar um formulário JavaScript no rodapé.
Tenho isso no cabeçalho:
<script type="text/discourse-plugin" version="0.8">
let loadScript = require("discourse/lib/load-script").default;
api.onPageChange(() => {
loadScript("//js.hsforms.net/forms/current.js").then(() => {
console.log("fazendo a coisa");
hbspt.forms.create({
portalId: "229276",
formId: "a86ca9cc",
submitButtonClass: "button orange-button hubspot-button",
target: ".subscription-form"
});
});
});
</script>
E isso no rodapé:
<div class="subscription-form clearfix">
<h5>Inscreva-se para nosso Blog</h5>
</div>
Na primeira vez que a página carrega, funciona bem. Nas páginas subsequentes (a maioria delas, pelo menos), o formulário não carrega e aparece a seguinte mensagem de erro:
Não foi possível encontrar o container de destino .subscription-form para o Formulário HubSpot a86ca9cc. O formulário não será renderizado na página.
Acho que talvez o rodapé seja carregado depois que o script é executado?
Então, preciso atrasar a execução desse script até que o rodapé seja carregado.
O arquivo plugin-api.js diz:
// Escute um `AppEvent` disparado pelo Discourse.
api.onAppEvent("inserted-custom-html", () => {
console.log("um rodapé personalizado foi renderizado");
});
Talvez eu só precise saber qual AppEvent observar?