我使用两个不同的库来嵌入YouTube视频。一个人工作正常,但如果我同时包括他们,第二个(取决于JavaScript包括订单)不起作用。控制台中没有错误,但我将其缩小到function onYouTubeIframeAPIReady() {
console.log('ytplayer onYouTubeIframeAPIReady');
if (ytp.YTAPIReady) return;
ytp.YTAPIReady = true;
jQuery(document).trigger("YTAPIReady");
}
函数,该函数由两个库使用的YouTube-API调用。
第一个图书馆( jquery.mb.YTPlayer )称之为(第26行):
// Creates deferred so, other players know when to wait.
window.onYouTubeIframeAPIReady = function () {
console.log("jarallax onYouTubeIframeAPIReady");
window.onYouTubeIframeAPIReady = null;
loadingYoutubeDeffer.resolve('done');
callback();
};
第二个图书馆( jarallax )执行此操作(约665行):
console.log()
我添加了{{1}},只记录了其中一个。
我能做什么,以便调用这两个函数并正确初始化两个库?
答案 0 :(得分:0)
由于全局函数window.onYouTubeIframeAPIReady
被 jarallax 覆盖,我存储了之前对函数的任何引用并调用它:
// Creates deferred so, other players know when to wait.
var f = window.onYouTubeIframeAPIReady;
window.onYouTubeIframeAPIReady = function () {
f();
console.log("jarallax onYouTubeIframeAPIReady");
window.onYouTubeIframeAPIReady = null;
loadingYoutubeDeffer.resolve('done');
callback();
};