Nano Hash - криптовалюты, майнинг, программирование

Остановить воспроизведение всех видео iframe при нажатии на ссылку javascript

У меня есть список видео iframe на моей веб-странице.

<iframe width="520" height="360" src="http://www.youtube.com/embed/2muxrT5_a6E" frameborder="0" allowfullscreen></iframe>
<iframe width="520" height="360" src="http://www.youtube.com/embed/2muxrT5_a6E" frameborder="0" allowfullscreen></iframe>
<iframe width="520" height="360" src="http://www.youtube.com/embed/2muxrT5_a6E" frameborder="0" allowfullscreen></iframe>
<a href="#" class="close">Stop all videos</a>

Мне нужно остановить воспроизведение видео iframe, нажав на ссылку Stop all videos. Как я могу это сделать?



Ответы:


1

Попробуйте так,

<script language="javascript" type="text/javascript" src="jquery-1.8.2.js"></script>
<script language="javascript" type="text/javascript">
$(function(){
    $('.close').click(function(){      
        $('iframe').attr('src', $('iframe').attr('src'));
    });
});
</script>
28.11.2012
  • Это работает нормально. Но проблема в том, что перезагрузка всех видео занимает много времени. Есть ли другой способ или я могу сделать перезагрузку быстрее? 28.11.2012
  • iframes медленнее, потому что есть дополнительные накладные расходы для браузера. 28.11.2012
  • и ваши источники также с внешнего сайта 28.11.2012
  • Ok. Большое спасибо. Еще одна помощь. Как проверить статус видео iframe, то есть видео находится в состоянии воспроизведения или нет? 28.11.2012
  • вам нужно использовать справочник по API проигрывателя YouTube для встраивания iframe. На это есть хороший ответ в stackoverflow.com/questions/8950146/, а ссылка Google на API находится здесь developers.google.com/youtube/iframe_api_reference 28.11.2012
  • Большое спасибо за ваши усилия. 28.11.2012
  • полезный, элегантный, простой, для тех, кто не хочет идти по пути youtube js api 12.02.2014
  • Обратите внимание, что если у вас есть разные видео в каждом iframe, это не сработает - он изменит src всех iframe на src первого iframe на странице. Один из приведенных ниже ответов лучше работает с использованием ключевого слова «этот». 15.09.2015
  • язык устарел 03.11.2015
  • Только что проверил это, работает хорошо, но все видео src заменяется первым видео src. 01.12.2015
  • Это находка. Спасибо!! 03.03.2021

  • 2

    Это должно остановить воспроизведение всех видео во всех фреймах на странице:

    $("iframe").each(function() { 
            var src= $(this).attr('src');
            $(this).attr('src',src);  
    });
    
    08.01.2014
  • Идеально этот код будет работать с разными видео на странице. Благодарю. 27.08.2019

  • 3

    Перезагружать все фреймы только для того, чтобы остановить их — ужасная идея. Вы должны воспользоваться преимуществами HTML5.

    Без использования библиотеки YouTube iframe_API; вы можете просто использовать:

    var stopAllYouTubeVideos = () => { 
      var iframes = document.querySelectorAll('iframe');
      Array.prototype.forEach.call(iframes, iframe => { 
        iframe.contentWindow.postMessage(JSON.stringify({ event: 'command', 
      func: 'stopVideo' }), '*');
     });
    }
    stopAllYouTubeVideos();
    

    который остановит все видео iframe на YouTube.

    Вы можете использовать эти ключевые слова сообщений для запуска/остановки/паузы встроенных видео YouTube:

    stopVideo
    playVideo
    pauseVideo
    

    Проверьте ссылку ниже для живой демонстрации:

    https://codepen.io/mcakir/pen/JpQpwm

    PS- URL-адрес YouTube должен иметь параметр запроса ?enablejsapi=1, чтобы это решение работало.

    08.03.2018

    4

    Остановка означает паузу и установку видео на время 0:

            $('iframe').contents().find('video').each(function () 
            {
                this.currentTime = 0;
                this.pause();
            });
    

    Этот код jquery сделает именно это.

    Не нужно заменять атрибут src и снова перезагружать видео.


    Маленькая функция, которую я использую в своем проекте:

        function pauseAllVideos() 
        { 
            $('iframe').contents().find('video').each(function () 
            {
                this.pause();
            });
            $('video').each(function () 
            {
                this.pause();
            });
        }
    
    01.07.2015
  • Отказывает в доступе к «документу» 24.02.2016
  • Он работает во всех моих проектах. Я добавил функцию, которую использую выше. 24.02.2016
  • Содержимое iframe и приложение должны находиться в одном домене! 23.11.2016
  • отличный сценарий бро :D 27.09.2018
  • удаление src и добавление его обратно уже сбрасывает видео на начало, 04.09.2020

  • 5

    Вот ванильное решение Javascript в 2019 году

    const videos = document.querySelectorAll('iframe')
    const close = document.querySelector('.close')
    
    close.addEventListener('click', () => {
       videos.forEach(i => {
          const source = i.src
          i.src = ''
          i.src = source
       })
    })
    
    09.09.2019
  • отличный и элегантный ответ! 04.09.2020
  • работал у меня для нескольких видео на одной странице. 13.04.2021

  • 6

    Я немного отредактировал приведенный выше код, и у меня сработало следующее .......

    <script>
    function stop(){<br/>
           var iframe = document.getElementById('myvid');<br/>
         var iframe1 = document.getElementById('myvid1');<br/>
          var iframe2 = document.getElementById('myvid2');<br/>
        iframe.src = iframe.src;<br/>
        iframe1.src=iframe1.src;<br/>
        iframe2.src=iframe2.src;<br/>
    }<br/>
    
    </script>
    
    21.03.2014

    7

    Снова загрузите все фреймы, чтобы остановить видео.

    <a href="#" class="close" onclick="stop();">Stop all videos</a>
    
    function stop(){
        var iframe = document.getElementById('youriframe');
        iframe.src = iframe.src;
    }
    
    28.11.2012
  • Это работает только для одного видео. Если воспроизводится несколько видео, это не сработало. 28.11.2012

  • 8

    Вы можете изменить этот код с помощью итерации

    /**
     * Stop an iframe or HTML5 <video> from playing
     * @param  {Element} element The element that contains the video
     */
    var stopVideo = function ( element ) {
        var iframe = element.querySelector( 'iframe');
        var video = element.querySelector( 'video' );
        if ( iframe ) {
            var iframeSrc = iframe.src;
            iframe.src = iframeSrc;
        }
        if ( video ) {
            video.pause();
        }
    };
    

    ВЛАДЕЛЕЦ: https://gist.github.com/cferdinandi/9044694 также размещен здесь (от я): как полностью уничтожить модальное окно начальной загрузки?

    23.06.2017

    9

    В jQuery вы можете остановить iframe или html-видео, используя приведенный ниже код.
    Это будет работать для одного или нескольких видео на одной странице.

    var  videos = document.querySelectorAll('iframe');
     
    $(".video-modal .fa-times").on("click", function () {
            videos.forEach(i => {
              let source = i.src;
              i.src = '';
              i.src = source;
           });
            $(".video-modal").css("display", "none");
            return false;
        });
    
    })
    
    13.04.2021
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..