Youtube Video continue de jouer quand Bootstrap Modal se ferme
Je suis entrain de créer un site avec bootstrap qui peut être trouvé ici - http://www.branchingouteurope.com/digital-spark-testing/
Si vous sélectionnez l'image vidéo, vous verrez une fenêtre modale ouvrir une vidéo youtube. Le problème que j'ai c'est que lorsque la fenêtre modale est fermé, la vidéo continue à jouer. Je veux que cette vidéo s'arrête lorsque la fenêtre modale est fermé.
J'ai regardé en ligne et de lire beaucoup de solutions cependant, aucun ne semble fonctionner. Ici est la marque...
<span class="main_video">
<div data-toggle="modal" data-target="#myModal" style="cursor:pointer">
<img src="img/master/video.fw.png" height="81%" width="60%" alt="Digital Spark Video"/>
</div>
</span>
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<iframe width="100%" height="100%" src="//www.youtube.com/embed/sIFYPQjYhv8?rel=0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
`
source d'informationauteur Stephen Tamlin
Vous devez vous connecter pour publier un commentaire.
Test ici dans FireFox 26.0, fonctionne comme prévu.
Quand j'ai fermer la Modale ou cliquez sur l'extérieur, puis de re-ouvrir - vidéo est de retour pour démarrer et s'est arrêté.
EDIT 1
Reproduit dans Chrome, la vidéo, en effet, continue à jouer après le Modal est fermé.
Essayez déjà répondu à ces questions
Arrêter une vidéo youtube avec jquery?
Twitter Bootstrap Modal arrêter la vidéo sur Youtube
Le meilleur moyen semble être d'utiliser des API YouTube pour arrêter la vidéo. Réponse qui utilise cette méthode est disponible dans les questions ci-dessus.
EDIT 2
Cette solution semble fonctionner.
Tout d'abord, obtenir le JS à partir de ce post: YouTube iframe API: comment puis-je contrôler une iframe joueur qui est déjà dans le code HTML?
et l'inclure dans la page.
Ajouter ce JS après avoir chargé le script ci-dessus (juste avant la balise de fermeture body)
Vous devrez également ajouter un ID de la div contenant l'iframe, comme ci-dessous
Ici est un peu plus léger d'une réponse basée sur dizarter la version et l'une des solutions qu'il a des liens vers d'.
prendre un coup d'oeil à mon code je n'ai pas besoin d'utiliser une API
Et si comme moi vous souhaitez que la vidéo de la lecture automatique, puis de les amener à arrêter lorsque vous cliquez sur fermer dans le Bootstrap modale vous avez besoin de faire quelque chose comme ceci:
Avis que j'ai ajouté "?autoplay=1" arg dynamiquement. Espérons que l'aide à quelqu'un.
Ici est une alternative à CloudKiller réponse qui fonctionne réellement avec la lecture automatique, il suffit de changer
.attr
à.removeAttr
comme suit:Mais encore plus compacte/version simplifiée de ce est de simplement remplacer les
src
avec une valeur vide:De sorte que le seul code que vous devez ajouter pour que cela fonctionne est:
À écrire du code efficace, tout d'abord nous avons besoin de vérifier sur les DOM prêt que l'iframe est exister ou ne pas exister si donc, aller au niveau suivant, autrement, ne pas faire n'importe quoi. J'ai utilisé la capture également.
C'est une solution qui a fonctionné pour moi (un peu hacky tout de même):
Tout d'abord, j'ai enveloppé mon iframe div "VideoId"comme ceci:
Puis j'ai fait cette fonction:
Et enfin, sur la fermeture de mon bouton du Panneau (c'était un modal dans mon cas), j'ai ajouté un oncklick cas l'appel de ma fonction, comme ceci:
Bien sûr, si vous voulez l'appeler de nouveau, vous devez remplir le contenu de VideoId avec javascript comme suit:
Il fonctionne parfaitement dans Chrome, Firefox, IE et Opera.
P. S. j'ai essayé de vider le div directement à partir de la onclick de l'appelant, mais elle a gardé des rapports un manque de support, - je ne sais pas pourquoi...
utiliser ce code de vérifier encore une fois. il fonctionne pour moi gentiment.
Très simple code à placer dans votre pied de page:
vous pouvez utiliser l'API youtube pour Arrêter(le joueur.stopVideo()) ou la mettre en pause (le joueur.pauseVideo()) votre vidéo. ici l'exemple de code.
HTML
Placez cette balise dans votre modal de contenu.
Charge API youtube et initialiser joueur
Arrêter ou mettre en pause la Vidéo sur modale près