Подтвердить что ты не робот

Предотвратить замену divx web plugin fron на элемент html5?

По какой-то причине я уверен, что люди в DivX думаю важны, нет простого способа предотвратить их плагин от замены всех видеоэлементов на вашей странице их фантазийным логотипом.

Мне нужно обходное решение для этого, сообщая плагину пропустить некоторые видео, а не заменять их воспроизводимым контентом.

4b9b3361

Ответ 1

Я обошел это, поместив пустой тег HTML 5, а затем разместив теги видеоигр в функции JavaScript в событии onload body. Затем видео появляется в обычном проигрывателе HTML 5, а не в веб-проигрывателе DivX.

например. Это даст игроку DivX:

<video width="320" height="240" controls="controls">
  <source src="movie.mp4" type="video/mp4" />
</video>

Но это даст нормальный плеер html 5:

    <head>
    <script type="text/javascript">
    function changevid() {
       document.getElementById('vid').innerHTML = '<source src="inc/videos/sample1.mp4" type="video/mp4" />';
       document.getElementById('vid').load();
    }
    </script>
    </head>
    <body onload="changevid()">

       <video id="vid" width="800" height="450" controls="controls">    
       </video>

    </body>

Ответ 2

В настоящее время нет API или средств для блокировки плагина divx от замены элементов видео с помощью их заполнителя.: - (

Ответ 3

я начал обратное проектирование divx-плагина, чтобы узнать, что можно сделать, чтобы взломать способ отключить его. Пример, включая полный исходный код divx-plugin, можно найти здесь: http://jsfiddle.net/z4JPB/1/

В настоящее время мне кажется, что возможное решение может работать следующим образом:

  • создать "чистую" резервную копию методов appendChild, replaceChild и insertBefore - это должно произойти до того, как будет выполнен контент-script из chrome-extension.
  • будет выполнен контент script, переопределяет упомянутые выше методы и добавляет event-слушателей к событиям DOMNodeInsertedIntoDocument и DOMNodeInserted
  • после этого прослушиватели событий могут быть удалены и восстановлены исходные DOM-Методы. Теперь вы можете заменить встроенные элементы, созданные плагином, на видеоэлементы

Ответ 4

Кажется, что плагин заменяет видео только при наличии src элементов в теге video. Для меня это сработало, сначала добавив тег video, а затем - во второй поток - добавьте теги src. Однако это не работает в IE, но у IE не было проблем с вставкой полного видео тега сразу.

Итак, следующий код работал у меня во всех браузерах (конечно, требуется jQuery):

var $container = $('video_container');
var video = 'my-movie';
var videoSrc = '<source src="video/'+video+'.mp4" type="video/mp4"></source>' +
    '<source src="video/'+video+'.webm" type="video/webm"></source>' +
    '<source src="video/'+video+'.ogv" type="video/ogg"></source>';

if(!$.browser.msie) {
    $container.html('<video autoplay loop></video>');
    // this timeout avoids divx player to be triggered
    setTimeout(function() {
        $container.find('video').html(videoSrc);
    }, 50);
}
else {
    // IE has no problem with divx player, so we add the src in the same thread
    $container.html('<video autoplay loop>' + videoSrc + '</video>');
}