2010-12-07 8 views
0

Ich verwende JavaScript, um Videoelemente in das DOM einzufügen, funktioniert aber nicht in Opera (v10.63). Das Element wird eingefügt, aber das Video wird nicht angezeigt/wiedergegeben. Funktioniert in Firefox, Chrome und Safari. Ich mache immer noch Tests, um zu sehen, ob ich es zur Arbeit bringen kann, aber ich habe mich nur gefragt, ob jemand anderes auf dieses Problem gestoßen ist.Das dynamische Einfügen des html5-Videoelements funktioniert nicht in Opera

Auf einem anderen Hinweis, der für andere hilfreich sein könnte, scheint Ereignisdelegierung nur mit Firefox und nicht Opera, Chrome oder Safari möglich. Das basiert auf Code-Tests, die ich gemacht habe, also könnte es falsch sein, aber ich kann es nicht zum Laufen bringen.

Vielen Dank

+0

Seltsam, haben Sie einen Link zu einer Demo? – hallvors

+0

Hallo Hallvors, nach vielen Tests habe ich herausgefunden, dass du das Video-Element nicht dynamisch einfügen kannst, da keines der Video-Ereignisse ausgelöst wird, was die Platte nutzlos macht. Aber was Sie tun können, ist hart Code die Video-Elemente in den HTML-Code und dann dynamisch die Quellelemente einfügen. – screenm0nkey

Antwort

0

Es ist möglich, das Video-Element auf das DOM in Opera 10.63 mit JavaScript hinzuzufügen. Der Code unten sollte zum Beispiel funktionieren (ich habe es in Opera 10.61 und Opera 11 getestet).

var vid, makevid; 
makevid = function(e){ 
    vid = document.createElement('video'); 
    vid.src = 'path/to/an/oggtheorafile.ogv'; 
     vid.setAttribute('autoplay',true); 
    document.getElementsByTagName('body')[0].appendChild(vid); 
} 
window.addEventListener('load',makevid,false); 

Sie müssen jedoch sicher sein, dass Sie ein kompatibles Videoformat verwenden. Opera 10.63 unterstützt Ogg/Theora und WebM. Wenn Sie MPEG4/H.264 verwenden, wird das Video nicht in Opera abgespielt.

(Edited zu Video-Format-Unterstützung in Opera 10.6x korrigieren Sie in der Tat WebM nicht unterstützt.)

EDIT 2: Beachten Sie, dass, wenn Sie JavaScript verwenden, um ein Video-Element im DOM einfügen, können Sie auch zu aktivieren benötigen, um die Steuerelemente mithilfe von vid.setAttribute('controls',true); oder durch Erstellen benutzerdefinierter Steuerelemente.

0

Sie könnten versuchen, die HTML5 Inner Shiv verwenden. Ich weiß, dass es mehr auf IE ausgerichtet ist, aber es könnte sich lohnen.