2010-05-27 20 views
1

J'essaie de générer dynamiquement un élément vidéo sur une page en utilisant JavaScript.Est-ce que l'injection de balises vidéo (HTML 5) via JavaScript fonctionne dans tous les navigateurs?

JavaScript

<script type="text/javascript"> 
    $(document).ready(function() { 
    var video = $(document.createElement('video')) 
    .attr('id', 'VideoElement') 
    .attr('controls', 'controls') 
    .attr('src', 'videopath.mp4') // Changed 'href' attribute to 'src' 
    .css({ 
     width: 640, 
     height: 360 
    }); 
    $('#VideoContainer').append(video); 
}); 

HTML

<body> 
    <div id="VideoContainer"></div> 
</body> 

Dans Firefox je reçois le faisceau vidéo, mais la vidéo réelle ne se charge pas. Dans IE8, le faisceau vidéo n'apparaît même pas.

Est-ce que HTML 5 n'est tout simplement pas assez supporté pour accomplir cela?

Édition: Vous l'avez trouvé avec le correctif d'Artiom. Cela semble fonctionner correctement avec Chrome et Safari. J'utilise un codec que Firefox ne supporte pas, donc ça ne marche pas; bien que je soupçonne que cela fonctionnera avec un codec pris en charge. IE8 assez sûr ne fonctionne pas (haute cinq IE).

+0

Vous peut combiner cet appel 'attr' en un seul appel en passant un objet comme vous le faites avec' css'. – x1a4

Répondre

2

En fait, je pense que vous utilisez le mauvais attribut :) il

Remplacer l'attribut href avec l'attribut src dans votre balise vidéo, et je suis sûr qu'il devrait fonctionner: P

+0

Ouais, tu avais raison. =) – JoshNaro

0

ie8 ne le supporte pas à coup sûr.

Avez-vous vérifié les différents lecteurs multimédia basés sur jQuery? Vous pouvez en trouver un qui utilise html5 par défaut et qui retombe en mode flash dans les navigateurs qui ne le supportent pas.