onYouTubeIframeAPIReady函数没有调用

我想调用onYouTubeIframeAPIReady函数,但这不是触发。 我在控制台中只得到frameID但其他函数没有被调用。

 $(document).ready(function(){ var player; var ytsrc = $('.video_holder_frame').find('iframe').attr('src'); if (ytsrc) ytsrc = ytsrc.match(/youtube.com\/embed\/([^\\?]*)/i); if (!ytsrc) return; var frameID = 'youtube_' + ytsrc[1]; console.log(frameID); $('.video_holder_frame').find('iframe').attr('id', frameID); function attachToYoutubeFrame() { console.log("attachToYoutubeFrame"); function onytplayerStateChange(newState) { console.log("onytplayerStateChange"); console.log(newState); }; player = new YT.Player(frameID, { events: { "onStateChange": onytplayerStateChange } }); }; function onYouTubeIframeAPIReady() { attachToYoutubeFrame(); }; }); 

您的onYouTubeIframeAPIReady()函数必须全局定义。 只需更换线路即可

 function onYouTubeIframeAPIReady() { 

 window.onYouTubeIframeAPIReady = function() { 

加载youtube iframe api库文件也很重要:

  

你的iframe src url也必须附加enablejsapi = 1参数:

 http://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1 

如果有人在这里挣扎,那就是解决它的人……

添加 – 因为在脚本中调用它会导致问题

此外,请确保您使用 – window.onYouTubeIframeAPIReady = function(){

这两件事情固定了两天的愤怒。