J'ai suivi une procédure à suivre sur YouTube pour un formulaire simple Popup modal, puis remplacé le code de formulaire avec l'encreur Iframe YouTube. Le gars utilisait Atom.io, donc j'ai utilisé cela, et tout fonctionne, à l'exception de l'audio continue de jouer.
Je suis très nouveau et apprenant des termes comme je vais. Dans le code JS, le guide a commencé les lignes avec le mot "document", mais sur Stackoverflow Les personnes utilisent un signe $, puis directement sur la fonction (). Cette question a été répondu à plusieurs fois, mais je ne sais pas comment intégrer ce code dans ce que j'ai. Je comprends que la lecture vidéo est simplement en pause. P>
par exemple, Arrêtez la vidéo lorsque Modal est fermé ressemble exactement à ce dont j'ai besoin, sauf que je ne peux pas penser à la fusion de mon fichier. Je pourrais simplement utiliser leur code directement, puis il y a Var et des éléments qui n'étaient pas expliqués dans la vidéo. P>
J'ai essayé d'ajouter p> Mais cela vient de le briser. J'utilise W3schools pour obtenir de l'aide avec le code. P> html strud> p> CSS strong> P > serait-il plus facile d'intégrer la vidéo à une page vierge et à montrer que dans le modal? Ce sera plus de travail car le site grandit, mais au moins c'est quelque chose pour l'instant: /. Ou si les JS ont juste changé la cible en rien en quelque sorte. P> p>
3 Réponses :
Je recommanderais faire quelque chose comme ceci:
alors vous pouvez faire quelque chose comme: p> var vidéo = document.createelement ("Vidéo");
video.settattribute ("src", "nomoffile.ogg"); code> p>
vidéo.Pause ();
video.currenttime = 0; code> p>
Je vais essayer cela aussi.
Avez-vous essayé d'utiliser innerhtml?
Par exemple: P>
<button type="button" name="button" id="button">Click</button> <!-- Modal Section --> <div class="bg-modal"> <div class="modal-content"> <div class="close">+</div> <div id="video"> <iframe width="840" height="472" src="https://www.youtube.com/embed/U5u9glfqDsc" frameborder="0" encrypted-media; picture-in-picture " allowfullscreen></iframe> </div> </div> </div> <script type="text/javascript"> document.getElementById("button").addEventListener("click", function() { document.querySelector(".bg-modal").style.display = "flex"; document.getElementById("video").innerHTML = '<iframe width="840" height="472" src="https://www.youtube.com/embed/U5u9glfqDsc" frameborder="0" encrypted-media; picture-in-picture " allowfullscreen></iframe>'; }); document.querySelector(".close").addEventListener("click", function() { document.getElementById("video").innerHTML = ''; document.querySelector(".bg-modal").style.display = "none"; }); </script>
Ah! C'est presque ce que je cherchais! : D Le premier ensemble de code supprime le bouton de fermeture et enfreint la vignette pour ouvrir la vidéo. Alors je l'ai placé sous la seconde et ça marche! Sauf la deuxième fois que la vignette est cliquée, le bouton de fermeture est parti .. Je pense que je connais la cause et c'est la direction que je cherchais :). Je ferai rapport une fois que tout va bien.
OUI! Votre code effacaudait tous les conteneurs et CSS ne pouvait pas suivre, donc j'ai fait une nouvelle classe DIV appelée TheVideo directement sur le lien vidéo, puis utilisée uniquement innerhtml pour gâcher ce conteneur. Rien d'autre n'est touché, le lien vidéo est supprimé essentiellement, puis remplacé.
Non quoi? Lorsque je l'ajoutez au site Web, le caractère + pour la fermeture de la fenêtre, et la vidéo est affichée sur la page au lieu de l'intérieur du modal> _ <
Pouvez-vous partager votre code? Je suppose que cela se trouve à l'intérieur d'un peu de droite modal?
C'est ce que j'utilise maintenant. Lang-JS Document.getelementByID ("Bouton"). AddeventListener ("Cliquez sur", fonction () {document.Quiseryselector (". BG-MODAL"). Style.display = "Flex";}); Document.QuerySelector (". Fermer"). AddEventListener ("Cliquez sur", fonction () {document.Quiseryselector (". BG-MODAL"). Style.display = "Aucun"; Document.Quiseryselector (". Thevideo"). innerhtml = ""; document.QuerySelector (". TheVideo"). innerhtml = '
J'ai pris la commande innerhtml à partir de @Adis pour effacer la vidéo, puis l'utiliser à nouveau pour mettre le lien afin de pouvoir cliquer une seconde fois. J'ai créé une autre classe autour du lien Iframe afin que c'était la seule chose à être effacée. Sinon, la commande effacée également le bouton pour fermer la fenêtre: p.
//Video 001 document.getElementById("button").addEventListener("click", function() { document.querySelector(".bg-modal").style.display = "flex"; }); document.querySelector(".close").addEventListener("click", function() { document.querySelector(".bg-modal").style.display = "none"; document.querySelector(".theVideo").innerHTML = ""; document.querySelector(".theVideo").innerHTML = '<iframe width="840" height="472" src="https://www.youtube.com/embed/U5u9glfqDsc" frameborder="0" encrypted-media; picture-in-picture " allowfullscreen></iframe></div>'; });
document.Quiseryselector (". BG-MODAL"). attr = "src", "" "; code> est une mauvaise syntaxe pour deux raisons. Une fois que la virgule est hors de la place et deux, vous avez trois citations ensemble, qui est analysé comme une chaîne interminée. Essayez
document.Quiseryselector ('. BG-MODAL'). setattribute ("src", ") code>
Celui-ci joue encore. J'ai commenté la ligne de fermeture afin que ce soit la seule commande en cliquant sur la vidéo et la vidéo n'était pas affectée.