Javascript Youtube Iframe Api在函数中不工作

Javascript Youtube Iframe Api在函数中不工作,javascript,iframe,youtube,Javascript,Iframe,Youtube,出于某种原因,当我将youtube iframe api放入这样的函数中时,它似乎不起作用 $.getVideo = (elem, id) => { $.getScript("https://www.youtube.com/iframe_api") var player; function onYouTubeIframeAPIReady() { player = new YT.Player(elem, { videoId:

出于某种原因,当我将youtube iframe api放入这样的函数中时,它似乎不起作用

$.getVideo = (elem, id) => {
    $.getScript("https://www.youtube.com/iframe_api")

    var player;

    function onYouTubeIframeAPIReady() {
        player = new YT.Player(elem, {
            videoId: id,
            playerVars: {
                autoplay: 1,
                autohide: 1,
                modestbranding: 0,
                rel: 0,
                showinfo: 0,
                controls: 0,
                disablekb: 1,
                enablejsapi: 1,
                iv_load_policy: 3
            },
            events: {
                'onReady': onPlayerReady,
            }
        })
    }

    function onPlayerReady(event) {
        event.target.mute()
    }
}
$.getVideo('player', 'CmRih_VtVAs')

但在函数外运行时,它似乎工作正常? 我做错了什么


我确实需要该函数才能工作

onYouTubeIframeAPIReady
必须在全局范围内可用

以调用上述函数的方式修改函数,然后加载库,并将player变量更新到新实例

var播放器;//全球范围
$.getVideo=(元素,id)=>{
var cb=()=>{
玩家=新的YT玩家(元素{
视频id:id,
playerVars:{
自动播放:1,
自动隐藏:1,
平均值:0,
rel:0,
showinfo:0,
控件:0,
禁用KB:1,
enablejsapi:1,
iv_负载_策略:3
},
活动:{
“onReady”:onPlayerReady,
}
})
}
window.onPlayerReady=函数(事件){
event.target.mute();
}
//如果未加载,请加载YouTube SDK
如果(!window.YT){
$.getScript(“https://www.youtube.com/iframe_api");
//更新全局函数以调用cb
window.onyoutubeiframeapiredy=cb;
//调用cb()
}否则{
window.onYouTubeIframeAPIReady=()=>{};//将其设置为伪函数
cb();
}
}
$.getVideo('player','CmRih_VtVAs')

onYouTubeIframeAPIReady
必须在全局范围内可用

以调用上述函数的方式修改函数,然后加载库,并将player变量更新到新实例

var播放器;//全球范围
$.getVideo=(元素,id)=>{
var cb=()=>{
玩家=新的YT玩家(元素{
视频id:id,
playerVars:{
自动播放:1,
自动隐藏:1,
平均值:0,
rel:0,
showinfo:0,
控件:0,
禁用KB:1,
enablejsapi:1,
iv_负载_策略:3
},
活动:{
“onReady”:onPlayerReady,
}
})
}
window.onPlayerReady=函数(事件){
event.target.mute();
}
//如果未加载,请加载YouTube SDK
如果(!window.YT){
$.getScript(“https://www.youtube.com/iframe_api");
//更新全局函数以调用cb
window.onyoutubeiframeapiredy=cb;
//调用cb()
}否则{
window.onYouTubeIframeAPIReady=()=>{};//将其设置为伪函数
cb();
}
}
$.getVideo('player','CmRih_VtVAs')