Empêcher le plugin web divx Fron remplacement élément vidéo html5?
-
13-10-2019 - |
Question
Pour une raison quelconque, je suis sûr que les gens de DivX pensent est important, il n'y a aucun moyen simple pour empêcher leur plug-in de remplacer tous les éléments vidéo sur votre page avec leur fantaisie logo.
Ce que je dois est une solution de contournement pour cela, dit le plugin pour sauter quelques vidéos, à savoir ne pas les remplacer avec leur contenu jouable.
La solution
Je suis cela en mettant une balise vidéo HTML 5 vide, puis mettre dans les balises de source vidéo dans une fonction JavaScript dans le corps événement onload. La vidéo est ensuite dans le lecteur HTML 5 normal et pas le lecteur DivX Web.
par exemple. Cela donnerait au lecteur DivX:
<video width="320" height="240" controls="controls">
<source src="movie.mp4" type="video/mp4" />
</video>
Mais cela donnerait le code html normale 5 lecteur:
<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>
Autres conseils
A ce moment, il n'y a pas d'API ou des moyens pour bloquer le plugin divx de remplacer des éléments vidéo avec leur espace réservé. : - (
i commencé reverse engineering le plugin divx pour savoir ce qui peut être fait pour pirater un chemin dans le désactiver. Un exemple, y compris le code source complet du-plugin divx, se trouve ici: http://jsfiddle.net/ z4JPB / 1 /
Il me semble actuellement qu'une solution possible pourrait fonctionner comme ceci:
- créer un « propre » sauvegarde des méthodes
appendChild
,replaceChild
etinsertBefore
-. Cela doit se produire avant que le script de contenu de l'extension de chrome est exécuté - le script de contenu exécutera, remplace les méthodes mentionnées ci-dessus et ajoute l'événement-auditeurs aux événements
DOMNodeInsertedIntoDocument
etDOMNodeInserted
- après, l'événement-auditeurs peuvent être enlevés et les DOM-méthodes restauré d'origine. Vous devriez maintenant être en mesure de remplacer les éléments embed créés par le plug-in avec les éléments vidéo-
Il semble que le plugin remplace uniquement la vidéo quand il y a des éléments src
dans la balise video
. Pour moi, il a travaillé en ajoutant d'abord la balise video
, puis - dans un second fil - ajouter les balises src
. Cependant, ce travail dans IE, mais Indifférent Fume IE n'a eu aucun problème avec une insertion de la balise vidéo complète à la fois.
code suivant a fonctionné pour moi dans tous les navigateurs (bien sûr, jQuery nécessaire):
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>');
}