我需要加载,销毁和重新加载YouTube Upload Widget,但不幸的是重新加载它不起作用。
我执行了以下步骤:
widget.destroy(
)销毁小部件 - 工作 为什么这不起作用?
答案 0 :(得分:4)
onYouTubeIframeAPIReady()
接口时,每页只会调用一次 window.YT.*
。从页面中删除<script src="http://www.youtube.com/iframe_api">
元素然后重新添加它不会再次触发onYouTubeIframeAPIReady()
。
如果您要销毁包含上传窗口小部件的<iframe>
,然后创建一个托管在新<div>
中的新窗口小部件,那么这应该可行,但您不必从内部执行此操作第二次onYouTubeIframeAPIReady()
回调。此时window.YT.UploadWidget()
已经可用,因此您可以直接在代码中的任何位置使用该界面。
答案 1 :(得分:3)
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();
}
祝你好运。