Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery(文档)中的onyoutubeiframeapiredy.ready_Javascript_Api_Iframe_Youtube - Fatal编程技术网

Javascript jQuery(文档)中的onyoutubeiframeapiredy.ready

Javascript jQuery(文档)中的onyoutubeiframeapiredy.ready,javascript,api,iframe,youtube,Javascript,Api,Iframe,Youtube,我想做的是: 等待文件提交 当YouTube iframe api准备好后,初始化我的自定义函数并将YT对象传递给它,以便我可以从内部构建播放器 这就是我到目前为止所做的。这是可行的,但我觉得有些事情很不对劲。我不确定是否应该这样做 jQuery.getScript("http://www.youtube.com/iframe_api"); // load YT api jQuery(document).ready(function() { onYouTubeIframeAPIReady

我想做的是:

  • 等待文件提交
  • 当YouTube iframe api准备好后,初始化我的自定义函数并将
    YT
    对象传递给它,以便我可以从内部构建播放器
  • 这就是我到目前为止所做的。这是可行的,但我觉得有些事情很不对劲。我不确定是否应该这样做

    jQuery.getScript("http://www.youtube.com/iframe_api"); // load YT api
    
    jQuery(document).ready(function() {
      onYouTubeIframeAPIReady = function() {
        new my_custom_function().init(YT); // init my function and pass YT object
      };
    });
    

    如果有人能澄清什么是最好的方法,我将不胜感激。我确实需要从
    my_custom_function()

    内部构建播放器,因为
    onyoutubeiframeapiredy
    函数必须在全局范围内,我想我们无法将其绑定到jQuery的document ready回调中。我看到的解决办法之一是使用。首先,我们创建一个不同的对象,并在
    onYouTubeIframeAPIReady
    回调中解析它

     var YTdeferred = $.Deferred();
     window.onYouTubeIframeAPIReady = function() {
       YTdeferred.resolve(window.YT);
     };
    
    然后在文档准备就绪后等待延迟对象被解析

    $(document).ready(function() {
      YTdeferred.done(function(YT) {
        // use YT here
      });
    });