重新加载youtube api

时间:2012-10-26 19:14:33

标签: youtube-api

我需要加载,销毁和重新加载YouTube Upload Widget,但不幸的是重新加载它不起作用。

我执行了以下步骤:

  1. 我按照方法中的描述加载了Youtube上传小工具 - 工作
  2. 我从网络摄像头捕获视频 - 工作
  3. 我使用widget.destroy()销毁小部件 - 工作
  4. 我从HTML中删除了脚本元素 - 工作
  5. 我按照步骤1重新加载API - 没有任何反应
  6. 为什么这不起作用?

2 个答案:

答案 0 :(得分:4)

当通过外部脚本加载onYouTubeIframeAPIReady()接口时,每页只会调用一次

window.YT.*。从页面中删除<script src="http://www.youtube.com/iframe_api">元素然后重新添加它不会再次触发onYouTubeIframeAPIReady()

如果您要销毁包含上传窗口小部件的<iframe>,然后创建一个托管在新<div>中的新窗口小部件,那么这应该可行,但您不必从内部执行此操作第二次onYouTubeIframeAPIReady()回调。此时window.YT.UploadWidget()已经可用,因此您可以直接在代码中的任何位置使用该界面。

答案 1 :(得分:3)

onYouTubeIframeAPIReady()仅在加载YouTube API时调用一次。答案是在YouTube的第2步添加另一张支票:

if (typeof tag === "undefined") { 
  // if first run load the YT API which will call the correct functions.
  var tag = document.createElement('script');
  tag.src = "https://www.youtube.com/iframe_api";
  var firstScriptTag = document.getElementsByTagName('script')[0];
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
} else {
   // if YT api already loaded, we need to call the function.
   onYouTubeIframeAPIReady();
}
祝你好运。