窗口的替代[" onYouTubePlayerAPIReady"]

时间:2016-03-16 15:14:05

标签: javascript iframe youtube youtube-api youtube-iframe-api

是否有window["onYouTubePlayerAPIReady"]的替代方案?我需要执行一个函数,如果youTube Player API准备就绪,但window["onYouTubePlayerAPIReady"]已经在另一个无法修改的脚本中使用。

1 个答案:

答案 0 :(得分:1)

如果您有多个onYouTubePlayerAPIReady函数声明,则前一个函数将被覆盖,永远不会被调用。

替代解决方案是在第一个onYouTubePlayerAPIReady函数上保留一个引用,然后在你自己或第二个onYouTubePlayerAPIReady函数内调用你保存的函数引用。

setTimeout( function() {
    if ( typeof window.onYouTubePlayerAPIReady !== 'undefined' ) {
        if ( typeof window.gambitOtherYTAPIReady === 'undefined' ) {
            window.gambitOtherYTAPIReady = [];
        }
        window.gambitOtherYTAPIReady.push( window.onYouTubePlayerAPIReady );
    }
    window.onYouTubePlayerAPIReady = function() {

        // Initialize YT.Player and do stuff here

        if ( typeof window.gambitOtherYTAPIReady !== 'undefined' ) {
            if ( window.gambitOtherYTAPIReady.length ) {
                window.gambitOtherYTAPIReady.pop()();
            }
        }
    }

查看此page以获取更多信息。