Como incorporar script JavaScript antes da tag ",

Quero alterar um estilo para vídeo no Discourse, como incorporar um script JavaScript antes da tag </body

Tentei editar no HEAD, não funciona perfeitamente!

Obrigado!

      <script src="/plyr.js"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const player = new Plyr('video');
        });
    </script>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Video Player</title>
    <link rel="stylesheet" href="https://cdn.plyr.io/3.6.12/plyr.css">
    <script src="https://cdn.plyr.io/3.6.12/plyr.js"></script>
</head>
<body>
    <video controls>
        <source src="your-video.mp4" type="video/mp4">
    </video>


    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const player = new Plyr('video');
        });
    </script>
</body>
</html>

Onde você está alterando? Em um componente de tema que você criou no UX? (Não sei o que é essa imagem.)

É muito provável que isso ocorra porque você não adicionou este nome de domínio à Política CSP.

E, para ser honesto, recomendo que você copie este arquivo js diretamente e o coloque na tag <script> para evitar que os usuários carreguem js de um site externo. Isso não é seguro - a menos que você confie completamente neste site.

1 curtida

É principalmente esta frase, o resto não é problema

    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const player = new Plyr('video');
        });
    </script>
</body >

Só pode ser colocado no final do body, isso é para inicializar o player depois que a página terminar de carregar.

Você pode usar a API de plugin do Discourse.
You can use the discourse plugin api.

<script type="text/discourse-plugin" version="0.8">
api.decorateCookedElement((elem, helper) => {
    const player = new Plyr('video');
}, {id: "beauitfy-video"})
</script>

Ah, você só precisa carregar uma vez? Então finja que eu não disse isso.
Ah, you only need to load once? Then pretend I didn’t say it

Não faz diferença. Você não tem um eventListener?
It makes no difference. Don’t you have an eventListener?

:sweat_smile: Não entendo como fazer isso. Precisa ser colocado antes do corpo.

Verifiquei e entendi. Adicione aqui

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.