2017-08-04 2 views
0

Ich lade die IFrame-API von YouTube, nachdem jemand auf meine Website geklickt hat. Es lädt in einem modalen Fenster. Auf dieser Schaltfläche habe ich auch die Video-ID in einem "Data-Video-ID" -Attribut. Gibt es eine Möglichkeit, die Video-ID dynamisch in die YouTube-API zu laden, anstatt die Video-ID wie unten im API-Code zu deklarieren?YouTube IFrame-API - Video-ID aus Daten-Video-ID setzen

var player; 
function onYouTubeIframeAPIReady() { 
    player = new YT.Player('video-placeholder', { 
     height: '1920', 
     width: '1080', 
videoId: 'GfCPFk8lyhM', <---(how do I make this dynamic?) 
     playerVars: { 
      modestbranding: 1, 
      rel: 0, 
     }, 
     events: { 
      'onReady': onPlayerReady 
     } 
    }); 
} 

Danke, Brian

Antwort

0

es in die Funktion wie so als Parameter-Feed. Ich habe die API nicht verwendet, aber hier ist ein kurzer Weg, um die Video-ID dynamisch zu gestalten.

var player; 
 

 
function onYouTubeIframeAPIReady(videoId) { 
 
    player = new YT.Player('video-placeholder', { 
 
     height: '1920', 
 
     width: '1080', 
 
     videoId: videoId, 
 
     playerVars: { 
 
      modestbranding: 1, 
 
      rel: 0, 
 
     }, 
 
     events: { 
 
      'onReady': onPlayerReady 
 
     } 
 
    }); 
 
} 
 

 
document.getElementById('btn-video').addEventListener('click', function() { 
 
    var videoId = this.dataset.videoId; 
 
    onYouTubeIframeAPIReady(videoId); 
 
    document.getElementById('debug').innerHTML = videoID + ' has been submitted'; 
 
});
<button id="btn-video" data-video-id="GfCPFk8lyhM">Play</button> 
 

 
<span id="debug"></span>

+0

Es scheint nicht zu funktionieren. Ich tausche "value()" aus; für "Daten-Video-ID();" da befindet sich meine Video ID auf der Schaltfläche. Ich bekomme ein "Video ist nicht definiert" in dieser Zeile. – Brian

+0

müssen Sie es mit 'document.getElementById ('ipt-video') .dataset.videoId' vertauschen, siehe aktuelles Beispiel. – Win

+0

Ich lade das YouTube-API-Skript erst nach dem Klicken auf die Schaltfläche. Ist es möglich, das noch zu machen? – Brian

0

Sie müssen die "loadVideoById" Funktion verwenden.
Der iFrame api hat alle Funktionen, die Sie benötigen.

HERE ist der Link für Sie.

Dies ist, was Sie verwenden sollten.

+0

Funktioniert das, wenn das YouTube-Skript erst nach dem Klicken auf die Schaltfläche geladen wird? – Brian

Verwandte Themen