Объединение нескольких сценариев управления видео плеером
Здравствуйте.
У меня такой вопрос. Есть небольшой скрипт помогающий осуществлять управление HTML5 видео плеером. <center> <video id="movie" width="100%" height="auto" controls="controls" poster=""> <source src="video.mp4" type="video/mp4"> </video> </center> <script>var a=document.getElementById("movie");a.onclick=function(){if(a.paused){a.play();}else{a.pause();}};</script> Он отлично справляется со своей задачей. Но если на странице будет добавленно еще несколько видео роликов, с ключевым элементом Код:
id="movie" <center> <video id="movie1" width="100%" height="auto" controls="controls" poster=""> <source src="video1.mp4" type="video/mp4"> </video> </center> <br> <video id="movie2" width="100%" height="auto" controls="controls" poster=""> <source src="video2.mp4" type="video/mp4"> </video> <script>var a=document.getElementById("movie1");a.onclick=function(){if(a.paused){a.play();}else{a.pause();}}; var b=document.getElementById("movie2");b.onclick=function(){if(b.paused){b.play();}else{b.pause();}}; </script>но если видео роликов будет еще больше, то придется еще раз увеличивать практически повторяющийся код. Возможно есть способ какого то объединения нескольких скриптов, что бы работал унивестальный поиск по элементу Код:
id="movie\d+" |
Цитата:
<center> <video id="movie1" width="100%" height="auto" controls="controls" poster=""> <source src="video1.mp4" type="video/mp4"> </video> </center> <br> <video id="movie2" width="100%" height="auto" controls="controls" poster=""> <source src="video2.mp4" type="video/mp4"> </video> <script> const videos = document.querySelectorAll('video'); function playpause () { if (this.paused) { this.play(); } else { this.pause(); } videos.forEach (video => video.addEventListener('clic', playpause)); </script> |
Спасибо за совет, но это несрабатывает, как с одним, так и с двумя видео.. Вот html файл и 2 мини видео ролика, что бы было проще это увидеть. К сожалению я сам не особо разбираясь в javascript что бы найти в чем причина.. Я проверил в раузерах Google hrome и IE 11.
Похоже что это работает только для Firefox, но исходный скрипт, почему то работает во всех браузерах. |
Цитата:
Так пробуйте <center> <video id="movie1" width="100%" height="auto" controls="controls" poster=""> <source src="video1.mp4" type="video/mp4"> </video> </center> <br> <video id="movie2" width="100%" height="auto" controls="controls" poster=""> <source src="video2.mp4" type="video/mp4"> </video> <script> const videos = document.querySelectorAll('video'); function playpause () { if (this.paused) { this.play(); } else { this.pause(); } } videos.forEach (video => video.addEventListener('clic', playpause)); </script> |
В Firefox, запуск срабатывал, поскольку там видимо, есть своя система управлением плеером с помощью кликов, (проверил это убрав полностью весь javascript код). Исправление со скобкой ничего не поменяло. Видимо метод вызова, какой то нестандартный. В любом случае, Спасибо за попытку помочь.
|
Цитата:
<center> <video id="movie1" width="100%" height="auto" controls="controls" poster=""> <source src="video1.mp4" type="video/mp4"> </video> </center> <br> <video id="movie2" width="100%" height="auto" controls="controls" poster=""> <source src="video2.mp4" type="video/mp4"> </video> <script> const videos = document.querySelectorAll('video'); function playpause () { if (this.paused) { this.play(); } else { this.pause(); } } videos.forEach (video => video.addEventListener('click', playpause)); </script> ну так то уж точно должно сработать. |
Цитата:
|
voraa,
VSC приводит к отуплению получается? |
Цитата:
|
Часовой пояс GMT +3, время: 14:21. |