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库文件也是很重要的:

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

此外,您的iframe-src url必须附加enablejsapi=1参数:

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

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

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

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

这两件事平息了两天的愤怒。

相关内容

  • 没有找到相关文章

最新更新