为什么YouTube API JavaScript代码在jQuery文档准备好后不起作用?

7

Youtube Javascript API代码在jQuery ready函数之外:http://jsbin.com/umituf/1

在jQuery ready函数内部:http://jsbin.com/umituf/2

我想要使用jQuery,因为当视频停止(even === 0)并且调用loadmore()方法时,我想要编写一个jQuery的ajax调用,返回到服务器并获取更多视频ID,以便它们可以进一步传递给cuePlaylist(...)方法。

为什么我不能混合使用jQuery和API?如何做到呢?


尝试使用$.getScript - http://api.jquery.com/jQuery.getScript/ - Kavi Siegel
这是用于发起Ajax调用的代码。我想将该代码放在document.ready()函数内部。 - Anthony
2个回答

5
函数需要在全局范围内定义。 http://jsbin.com/umituf/3 为了澄清,YouTube API脚本在全局范围内查找这些特定的函数。该API脚本无法访问在document.ready回调中创建的范围。

太好了。那我可以把jQuery的.ajax()方法放在全局空间吗? - Anthony
1
你可以这样做,但一定要确保任何访问DOM的内容都是在元素存在后进行的。如果可能的话,我建议将JavaScript放置在闭合的body标签之前。 - Kevin B

-1

YouTube API的JS代码,您可以将其附加到页面并使用全局上下文。您可以将您的代码放入

$(document).ready(function(){
    window.onYouTubeIframeAPIReady = onYouTubeIframeAPIReady;
});

但最终你必须编写这个 (*) 字符串。

在此之后,onYouTubeIframeAPIReady 函数将能够从全局上下文中调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接