Я хочу изменить стиль видео в Discourse. Как встроить JavaScript-скрипт перед тегом </body>?
Пытался редактировать его в HEAD, но это работает не совсем корректно!
Спасибо!
<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>
pfaffman
(Jay Pfaffman)
15.Сентябрь.2023 15:54:49
2
Где вы это меняете? В компоненте темы, который вы создали в UX? (Не знаю, что это за изображение.)
Lhc_fl
(Linca)
16.Сентябрь.2023 14:06:35
4
Скорее всего, вы не добавили это доменное имя в политику CSP.
И если честно, я рекомендую вам скопировать этот JS-файл напрямую и поместить его в тег <script>, чтобы предотвратить загрузку JS с внешнего сайта. Это небезопасно — если только вы полностью не доверяете этому сайту.
Главная проблема в этой строке, с остальным всё в порядке
<script>
document.addEventListener('DOMContentLoaded', function () {
const player = new Plyr('video');
});
</script>
</body>
Можно размещать только в конце body — это необходимо для инициализации плеера после полной загрузки страницы.
Lhc_fl
(Linca)
16.Сентябрь.2023 15:41:15
7
Вы можете использовать API плагинов Discourse.
<script type="text/discourse-plugin" version="0.8">
api.decorateCookedElement((elem, helper) => {
const player = new Plyr('video');
}, {id: "beauitfy-video"})
</script>
А, значит, нужно загружать только один раз? Тогда делайте вид, что я этого не говорил.
А, значит, нужно загрузить только один раз? Тогда делайте вид, что я этого не говорил.
Это не имеет никакого значения. Разве у вас нет eventListener?
Это не имеет никакого значения. Разве у вас нет eventListener?
Не понимаю, как это сделать. Нужно разместить перед body.
Проверил, понял. Добавьте это в этом месте