2011-01-20 6 views
12

Por alguna razón, estoy seguro de que la gente de DivX piensa que es importante, no existe una forma directa de evitar que su complemento reemplace todos los elementos de video en su página con el logotipo de lujo.¿Prevenir el complemento web divx para reemplazar el elemento de video html5?

Lo que necesito es una solución para esto, diciéndole al plugin que se salte algunos videos, es decir, que no los reemplace con su contenido reproducible.

+2

estoy tratando de utilizar HTML5 como fondo de pantalla completa en mi sitio. En las máquinas con el complemento web DivX habilitado, el video se superpone en la parte superior de mi sitio ya que el complemento ignora completamente Zindexing. Personalmente, me parece repugnante este ** BROWSER HIJACK **. Solía ​​tener mucha fe en DivX, ciertamente destruyeron eso con esta patética excusa para un complemento. –

+0

Lo triste es que no hay nada que podamos hacer al respecto. :-( –

Respuesta

9

Lo solucioné colocando una etiqueta de video HTML 5 vacía y luego colocando las etiquetas fuente de video en una función de JavaScript en el evento de carga del cuerpo. El video luego aparece en el reproductor normal de HTML 5 y no en el reproductor web DivX.

p. Ej. Esto daría al jugador de DivX:

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

Pero esto daría a la normal de HTML 5 jugador:

<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> 
+0

Puede ir más allá y agregar la etiqueta de video en su completo a través de javascript. He probado esto personalmente, y la extensión DivX no capta/ve nada agregado después de que la página se haya cargado. –

+0

mh, probé esta solución, pero no funciona para mí. No importa, si uso jquerys ready event, o directamente body onload, siempre aparece divx, especialmente en chrome. – ghost23

+0

Utilicé esta solución, pero usando jQuery. Agregué la etiqueta de video a un div, luego agregué las fuentes a la etiqueta de video. Funcionó como un amuleto – Navigatron

3

En este momento, no hay API o medios para bloquear el complemento divx de reemplazar los elementos de video con su marcador de posición. :-(

2

empecé ingeniería inversa de la divx-plugin para averiguar qué se puede hacer para cortar un camino en su desactivación Un ejemplo, que incluye el código fuente completo de la divx-plugin, se puede encontrar aquí:. http://jsfiddle.net/z4JPB/1/

parece actualmente para mí que una posible solución podría funcionar así:

  • crear una copia de seguridad "limpia" de los métodos appendChild, replaceChild y insertBefore - esto tiene que suceder antes de que el contenido de la escritura de la se ejecuta chrome-extension.
  • el script de contenido se ejecutará, anula los métodos mencionados anteriormente y agrega event-listeners a los eventos DOMNodeInsertedIntoDocument y DOMNodeInserted
  • después de eso, los event-listeners se pueden eliminar y los DOM-Methods originales restaurados. Ahora debería poder reemplazar los elementos de inserción creados por el complemento con los elementos de video
+0

desafortunadamente esto no funcionó como esperaba. La única solución que funcionó para mí fue observar el dom en busca de 'incrustaciones' indeseadas, luego eliminarlas y presentar el repliegue para los navegadores que no lo hacen. t video de apoyo en absoluto. Sin embargo, me puse en contacto con los chicos de Divx que me dijeron que se lo pasarían a su equipo de desarrollo. No creo en los milagros, pero quién sabe ... –

1

Parece, que el plugin sólo se está reemplazando el video cuando hay src elementos dentro de la video etiqueta. Para mí funcionó al agregar primero la etiqueta video, y luego - en un segundo hilo - agregar las etiquetas src. Sin embargo, esto no funciona en IE pero IE no tuvo problemas con la inserción de la etiqueta de video completa a la vez.

Así siguiente código trabajó para mí en todos los navegadores (por supuesto, jQuery requiere):

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>'); 
} 
Cuestiones relacionadas