IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Solution js fiddle !? (Plusieurs vidéos YT sur une seule page)


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 50
    Points : 19
    Points
    19
    Par défaut Solution js fiddle !? (Plusieurs vidéos YT sur une seule page)
    Bonjour,
    J'ai trouvé un script génial sur stackoverflow pour mettre en pause une vidéo Youtube quand on en lance une autre (histoire d'éviter la cacophonie) : ça marche à la perfection sur l'exemple js fiddle, mais plus du tout quand on copie le code sur une nouvelle page html
    Alors j'ai ajouté les "dépendances" : l'appel de jquery 2.0.2 dans le head, et aussi une fonction onLoad JQ mais rien n'y fait…
    Si près du but, c'est désespérant !
    Ce serait pourtant la solution idéale pour un site WP où on ne peut pas mettre d'identifiant à l'iframe de la vidéo sous peine que tout soit écrasé par l'utilisateur à la mise à jour suivante…
    Voilà l'idée :
    http://jsfiddle.net/fyb7fyw1/
    Que manque-t-il pour que ça fonctionne chez moi ?

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 424
    Points : 15 796
    Points
    15 796
    Par défaut
    montrez nous le code HTML de la page qui ne fonctionne pas.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 50
    Points : 19
    Points
    19
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>multi vidéos YouTube</title>
    <script type="text/javascript" src="https://code.jquery.com/jquery-2.0.2.js"></script>
    <script type="text/javascript">
    $(window).load(function(){
    });
    </script>
    </head>
     
    <body>
     
    <script>
    var tag = document.createElement('script');
    tag.src = "//www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
     
    function onYouTubeIframeAPIReady() {
        var $ = jQuery;
        var players = [];
        $('iframe').filter(function(){return this.src.indexOf('http://www.youtube.com/') == 0}).each( function (k, v) {
            if (!this.id) { this.id='embeddedvideoiframe' + k }
            players.push(new YT.Player(this.id, {
                events: {
                    'onStateChange': function(event) {
                        if (event.data == YT.PlayerState.PLAYING) {
                            $.each(players, function(k, v) {
                                if (this.getPlayerState() == YT.PlayerState.PLAYING && this.getIframe().id != event.target.getIframe().id) { 
                                    this.pauseVideo();
                                }
                            });
                        }
                    }
                }
            }))
        });
    }
    </script>
     
    <iframe frameborder="0" allowfullscreen="1" title="YouTube video player" width="300" height="200" src="http://www.youtube.com/embed/gbug3zTm3Ws?enablejsapi=1&amp;origin=http%3A%2F%2Ffiddle.jshell.net"></iframe>
    <br/>
     
    <iframe frameborder="0" allowfullscreen="1" title="YouTube video player" width="300" height="200" src="http://www.youtube.com/embed/JFBUJ6kNl28?enablejsapi=1&amp;origin=http%3A%2F%2Ffiddle.jshell.net"></iframe>
    <br/>
     
    <iframe frameborder="0" allowfullscreen="1" title="YouTube video player" width="300" height="200" src="http://www.youtube.com/embed/pUjE9H8QlA4?enablejsapi=1&amp;origin=http%3A%2F%2Ffiddle.jshell.net"></iframe>
    <br/>
     
    <iframe frameborder="0" allowfullscreen="1" title="YouTube video player" width="300" height="200" src="http://www.youtube.com/embed/saz1vsk69KI?enablejsapi=1&amp;origin=http%3A%2F%2Ffiddle.jshell.net"></iframe>
     
    </body>
    </html>

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 424
    Points : 15 796
    Points
    15 796
    Par défaut
    dans les URL des iframes, vous devez mettre le nom de votre serveur pour l'argument "origin".

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 50
    Points : 19
    Points
    19
    Par défaut
    Merci de bien vouloir vous pencher sur mon problème !
    Je viens de voir cet ajout à la fin de l'adresse de chaque vidéo. Mais si je l'enlève sur jsfiddle, c à d si je m'arrête après enablejsapi=1 ça fonctionne toujours sur jsfiddle et toujours pas chez moi…
    D'ailleurs l'exemple jsfiddle.net/fyb7fyw1/52/ cité plus haut (que j'ai aussi testé en local) n'utilise pas origin.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 50
    Points : 19
    Points
    19
    Par défaut mettre en pause une vidéo YouTube au démarrage d'une autre (plusieurs iframes YouTube sur une même page html)
    Coucou tout le monde,
    j'ai trouvé la réponse : dans le code vers l'api youtube il manquait "https:" devant l'adresse et du coup ça ne fonctionnait pas chez moi en local…
    C'est trop bête !!!
    Si au moins ça crée une référence en français pour ce pb que je n'ai vu traité qu'en anglais sur Google… Ce sera toujours ça de gagné pour ceux qui suivront.

    P.S. Et merci à Mathieu d'avoir donné un peu de son temps pour m'aider… !

  7. #7
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 424
    Points : 15 796
    Points
    15 796
    Par défaut
    ah oui en retirant cet argument, cela fonctionne chez moi.
    voilà ce j'ai testé :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>multi vidéos YouTube</title>
    <script type="text/javascript" src="https://code.jquery.com/jquery-2.0.2.js"></script>
    <script type="text/javascript">
    $(window).load(function(){
    });
    </script>
    </head>
     
    <body>
     
    <script>
    console.clear();
     
    var tag = document.createElement('script');
    tag.src = "//www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
     
    function onYouTubeIframeAPIReady() {
            
        var $ = jQuery;
        var players = [];
        $('iframe').filter(function(){return this.src.indexOf('http://www.youtube.com/') == 0}).each( function (k, v) {
            if (!this.id) { this.id='embeddedvideoiframe' + k }
            players.push(new YT.Player(this.id, {
                events: {
                    'onStateChange': function(event) {
                        if (event.data == YT.PlayerState.PLAYING) {
                            $.each(players, function(k, v) {
                                if (this.getPlayerState() == YT.PlayerState.PLAYING && this.getIframe().id != event.target.getIframe().id) { 
                                    this.pauseVideo();
                                }
                            });
                        }
                    }
                }
            }))
        });
        
    }
    </script>
     
    <iframe frameborder="0" allowfullscreen="1" title="YouTube video player" width="300" height="200" 
    src="http://www.youtube.com/embed/gbug3zTm3Ws?enablejsapi=1"></iframe>
    <br/>
     
    <iframe frameborder="0" allowfullscreen="1" title="YouTube video player" width="300" height="200" 
    src="http://www.youtube.com/embed/TWweaQOL-iA?enablejsapi=1"></iframe>
    <br/>
     
    <iframe frameborder="0" allowfullscreen="1" title="YouTube video player" width="300" height="200" 
    src="http://www.youtube.com/embed/WGM0wf9V6Wo?enablejsapi=1"></iframe>
     
    </body>
    </html>

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 124
    Points : 44 922
    Points
    44 922
    Par défaut
    Bonjour,
    effectivement on voit de plus en plus d'url sans protocole dans les sources, absence de http: ou https:, pour éviter les modifications au passage de http vers https.

    En l'absence de protocole c'est celui de la page qui est utilisé, si tu fais tes test en local c'est file: qui est utilisé, donc le script n'est pas trouvé.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 50
    Points : 19
    Points
    19
    Par défaut
    Ah oui… Je comprends mieux pourquoi sur certains sites on voit subitement apparaitre un avertissement du navigateur du type "attention, vos données ne sont plus sécurisées" alors qu'on a juste changé de page sur un même site…
    L'appel de fichiers js externes pourrait déclencher ce genre d'alerte ?

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 124
    Points : 44 922
    Points
    44 922
    Par défaut
    L'appel de fichiers js externes pourrait déclencher ce genre d'alerte ?
    si le fichier est inclus via une balise <script>, la console te l'indiquera, un message comme « Failed to load resource: net::ERR_FILE_NOT_FOUND » devrait apparaître, mais comme tu passes par une insertion via un appendChild il te faut effectivement vérifier que le script est bien pris en compte, un indice est qu'il ne fonctionne pas par exemple, mais c'est des fois bien plus vicieux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [GD] Générer plusieurs images en PHP sur une seul page
    Par arnaudperfect dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 06/04/2012, 11h26
  2. plusieurs Band maitre sur une même page
    Par looping dans le forum Rave
    Réponses: 0
    Dernier message: 13/02/2009, 17h40
  3. Regrouper plusieurs graphes sur une seule page
    Par Pur2000 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/12/2008, 11h53
  4. Mettre plusieurs graphiques sur une seule page
    Par 7heart dans le forum ODS et reporting
    Réponses: 3
    Dernier message: 06/05/2008, 22h41
  5. [HTML] Plusieurs balises <html> dans une seule page???
    Par v4np13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 02/07/2005, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo