我需要加载、销毁和重新加载YouTube Upload Widget,但不幸的是重新加载它不起作用。
我执行了以下步骤:
- 我按照howto- works中的描述加载了Youtube Upload Widget
- 我从网络摄像头捕捉视频 -有效
- 我使用 ) 销毁小部件
widget.destroy(
-有效 - 我从 HTML 中删除脚本元素 -有效
- 我按照步骤 1 重新加载 API -没有任何反应
为什么这不起作用?
我需要加载、销毁和重新加载YouTube Upload Widget,但不幸的是重新加载它不起作用。
我执行了以下步骤:
widget.destroy(
-有效为什么这不起作用?
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();
}
祝你好运。