et onloadedmetadata-event

J’aimerais utiliser les dimensions d’un élément vidéo HTML5 en JavaScript. La balise video elle-même n’a pas de dimensions définies, je pense donc qu’elle s’adaptera à la taille de la vidéo (ce qui est le cas). Mon balisage ressemble à ceci:

  

Lorsque j’utilise simplement jQuery pour obtenir la height() l’élément height() et / ou la width() , j’obtiens une valeur par défaut de 300 car il n’attendra pas le chargement de la vidéo. Donc ce que j’ai découvert sur le Web ( ici et ici ), c’est que je devrais attendre le onloadedmetadata onloadedmetadata. J’essaie donc de faire ce qui suit dans mon JS:

 var video = document.getElementById('viddy'); video.onloadedmetadata = function(e){ var dimensions = [video.videoWidth, video.videoHeight]; alert(dimensions); } 

Pourtant, l’événement ne sera jamais déclenché (bien que la vidéo soit chargée et jouée) et je ne pourrai jamais obtenir mes dimensions. La même chose se produit avec un jQuery- bind('load', et de toute autre manière que je pourrais penser. Une idée? Merci.

Mettez votre code dans une function à la fin de votre tête html (par exemple, appelé ‘init’) et associez-le au DOMContentLoaded -event:

  ...   

Voir aussi cet exemple .

=== UPDATE ===

Pour Chrome, vous devez modifier l’ajout de l’auditeur à:

 video.addEventListener('loadedmetadata', function(e){ 

Voir aussi cet exemple mis à jour .

=== UPDATE ===

Avec jquery:

 $(document).ready(function() { $('#viddy').on('loadedmetadata', function() { var dimensions = [this.videoWidth, this.videoHeight]; alert(dimensions); }); }); 

Voir aussi cet exemple mis à jour .