2017-02-06 23 views
1

Ich habe unter Code für Youtube API-Player. Ich habe Funktionen definiert, d. H. PlayVideo, stopVideo usw. Aber es gibt einen Fehler von nicht definierten Funktionen.Uncaught TypeError: Kann die Eigenschaft 'stopVideo' von undefined nicht lesen

Nach viel Forschung kann ich diesen Fehler noch nicht herausfinden.

index.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>Videos</title> 
<script src="jquery-3.1.1.js"></script> 
<script src="script.js"></script> 


</head> 
<body> 
<div id="player"> 
    <iframe id="player" width="560" height="315" src="https://www.youtube.com/embed/sGPrx9bjgC8" frameborder="0" allowfullscreen></iframe> 
    <br/> 
    <a href="javascript:void(0);" onclick = "playVid()">Play</a>|| 
    <a href="javascript:void(0);" onclick = "stopVid()">Stop</a>|| 
    <a href="javascript:void(0);" onclick = "muteVid()">Mute</a>|| 

    </div> 
</body> 
</html> 

**script.js** 

var tag = document.createElement('script'); 
tag.src = "https://www.youtube.com/iframe_api"; 
tag.scr = "https://s.ytimg.com/yts/jsbin/www-widgetapi-vflioRwVn/www-widgetapi.js"; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

var player; 

window.onYouTubeIframeReady = function(){ 
    player = new YT.Player('player', { 
     videoId: 'sGPrx9bjgC8', 
     events: { 
      'onReady' : onPlayerReady, 
     } 
    }); 
} 

function onPlayerReady(event){ 
    event.target.playVideo(); 
} 

function playVid(){ 
    player.playVideo(); 
} 

function stopVid(){ 
    player.stopVideo(); 
} 

function muteVid(){ 
    player.mute(); 
} 

Here is my erorrs

+0

Sie mit Funktion onYouTubeIframeAPIReady versuchen könnte() {anstelle von window.onYouTubeIframeReady = function() { – Deep

+0

Ich habe versucht, das auch. Aber immer noch nicht funktioniert – honey

Antwort

2

dieses one.It Versuchen Sie, für mich gearbeitet.

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>Videos</title> 
<script 
    src="https://code.jquery.com/jquery-3.1.1.min.js" 
    integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" 
    crossorigin="anonymous"></script> 
<script type="text/javascript" src="https://www.youtube.com/iframe_api"></script> 

<script type="text/javascript"> 
var tag = document.createElement('script'); 
tag.src = "https://s.ytimg.com/yts/jsbin/www-widgetapi-vflioRwVn/www-widgetapi.js"; 
tag.setAttribute('onload','onYouTubeIframeReady()'); 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

var player; 

window.onYouTubeIframeReady = function(){ 
    player = new YT.Player('player', { 
     videoId: 'sGPrx9bjgC8', 
     events: { 
      'onReady' : onPlayerReady, 
     } 
    }); 
} 

function onPlayerReady(event){ 
    event.target.playVideo(); 
} 

function playVid(){ 
    player.playVideo(); 
} 

function stopVid(){ 
    player.stopVideo(); 
} 

function muteVid(){ 
    player.mute(); 
} 
</script> 

</head> 
<body> 
    <div id="player"> 
    <iframe id="player" width="560" height="315" src="https://www.youtube.com/embed/sGPrx9bjgC8" frameborder="0" allowfullscreen></iframe> 
    <br/> 
    </div> 
    <div> 
    <a href="javascript:void(0);" onclick = "playVid()">Play</a>|| 
    <a href="javascript:void(0);" onclick = "stopVid()">Stop</a>|| 
    <a href="javascript:void(0);" onclick = "muteVid()">Mute</a>|| 
    </div> 
</body> 
</html> 
+0

Okay, dann markieren Sie die Antwort als richtig. Vielen Dank im Voraus. – SatyaDash

0

Offenbar ist Ihre player Variable YT Objekt nicht festgelegt, wie Sie erwarten.

  1. Sie könnten die PlayVid() Funktion anrufen, bevor der onYouTubeIframeReady Rückruf geschieht.
  2. Ein anderes Problem in Ihrem Code ist die Tatsache, dass Sie denselben id="player" Namen für mehr als ein Element auf Ihrer Seite verwenden. Bitte, benennen Sie Ihre ID div in etwas anderes um.

Zum Beispiel:

<div id="player-wrapper"> 
    <iframe id="player" width="560" height="315" src="..." 
+0

Ich habe alle Möglichkeiten ausprobiert. Aber ich bin immer noch nicht in der Lage, diesen Fehler zu verstehen. – honey

+0

Könnten Sie bitte eine Geige mit Ihrem Code erstellen? – Uzbekjon

Verwandte Themen