2015-12-15 142 views
1

我在加載YouTube IFrame API時遇到問題。
我添加了標籤,YouTube加載了他們的腳本,但是當我調用構造函數時,出現錯誤。YouTube IFrame API錯誤

player = YT.Player('vidPlayer', { 
    height: '390', 
    width: '640', 
    videoId: id, 
    playerVars: { 
     'rel': 0 
    }, 
    events: { 
     'onReady': playerReady, 
     'onStateChange': playerStateChange 
    } 
}); 

請糾正我,如果我在那裏做任何錯誤。當我調用該構造函數時,會引發錯誤。這是控制檯說:

Uncaught TypeError: a.G is not a function 
qb @ www-widgetapi.js:24 
P @ www-widgetapi.js:20 
X @ www-widgetapi.js:31 
onYouTubeIframeAPIReady @ script.js:55 
(anonymous function) @ www-widgetapi.js:39 
(anonymous function) @ www-widgetapi.js:39 

有沒有人知道一種方法來解決這個問題?

+0

由於您尚未發佈整個代碼,請查看我的小型項目:https://github.com/alibozorgkhan/minidj/blob/master/static/js/minidj.js。也許它可以幫助你找出問題所在。 – AliBZ

+0

@AliBZ onYouTubeIframeAPIReady函數和添加player_api的腳本是代碼中唯一的東西,所以你在這裏看到的幾乎是所有東西都減去標籤腳本。 –

回答

0

我也有同樣的問題。這對我有效。我使用YouTube iFrame API,然後創建對象。它適用於我。 在我們想要創建對象的文件中添加腳本。

<script src="https://www.youtube.com/iframe_api"></script> 

然後添加正在加載iFrame的div。

<div id="iframe"></div> 

現在的JavaScript通過YouTube API來加載的YouTube的iFrame

$(document).ready(function() { 
var player; 
    function onYouTubeIframeAPIReady() { 
    player = new YT.Player('iframe', { 
     height: '390', 
     width: '640', 
     videoId: 'M7lc1UVf-VE', 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 
    }); 
    } 

function onPlayerReady() { 
    console.log('onPlayerReady'); 
    player.playVideo(); 
} 

function onPlayerStateChange() { 
    //your code after change the state 
} 

)};

onYouTubeIframeAPIReady()函數在加載時通​​過YouTube iframe API自動調用。