重新加载YouTube API



我需要加载,销毁和重新加载YouTube上传小部件,但不幸的是,重新加载它不起作用。

我执行了以下步骤:

  1. 我按照howto - Works
  2. 中所述加载了YouTube上传小部件
  3. 我从网络摄像头捕获了一个视频 - works
  4. 我使用widget.destroy() - Works
  5. i从HTML - Works
  6. 中删除脚本元素
  7. 我像步骤1 -中重新加载API

为什么不起作用?

onYouTubeIframeAPIReady()仅在每页上一次调用一次,当window.YT.*接口通过外部脚本加载时。从页面中删除<script src="http://www.youtube.com/iframe_api">元素,然后重新添加它不会再次触发onYouTubeIframeAPIReady()

如果要销毁包含上传小部件的<iframe>,然后创建一个在新的<div>中托管的新窗口小部件,则应该有效,但是您不必第二次从onYouTubeIframeAPIReady()回调中进行操作。window.YT.UploadWidget()当时已经可用,因此请随时直接从代码中的任何地方使用该接口。

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();
}

祝你好运。

相关内容

  • 没有找到相关文章

最新更新