Youtube api 重新加载youtube api

Youtube api 重新加载youtube api,youtube-api,Youtube Api,我需要加载、销毁和重新加载,但不幸的是,重新加载无法工作 我执行了以下步骤: 我加载了Youtube上传小部件,如howto-works中所述 我从网络摄像头中捕获视频-有效 我使用小部件销毁小部件。销毁()-有效 我将脚本元素从HTML中删除-works 我像步骤1一样重新加载API-什么都没有发生 为什么不工作?onyoutubeiframeapiredy()通过外部脚本加载window.YT.*接口时,每页只调用一次。从页面中删除元素,然后重新添加它不会再次触发onYouTubeIfram

我需要加载、销毁和重新加载,但不幸的是,重新加载无法工作

我执行了以下步骤:

  • 我加载了Youtube上传小部件,如howto-works中所述
  • 我从网络摄像头中捕获视频-有效
  • 我使用小部件销毁小部件。销毁()-有效
  • 我将脚本元素从HTML中删除-works
  • 我像步骤1一样重新加载API-什么都没有发生

  • 为什么不工作?

    onyoutubeiframeapiredy()
    通过外部脚本加载
    window.YT.*
    接口时,每页只调用一次。从页面中删除
    元素,然后重新添加它不会再次触发
    onYouTubeIframeAPIReady()


    如果您想销毁包含上载小部件的
    ,然后在新的
    中创建一个新的小部件,那么这应该可以工作,但您不必第二次从
    onyoutubeiframeapiredy()
    回调中执行
    window.YT.UploadWidget()
    此时已可用,因此可以从代码中的任何位置直接使用该接口。

    OnyoutubeiFrameApiredy()在加载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();
    }
    

    祝你好运。

    你需要提供你尝试过的内容和结果的详细信息。就目前而言,你是在说“事情对我不起作用,请看看你的水晶球,告诉我为什么”。我尝试了步骤1-5,步骤5的结果是什么都没有发生(如我在帖子中所描述的)。我期望重新加载API并插入iframe,但这不会发生。没有错误消息,什么都没有。您要删除哪个脚本元素?位于
    http://www.youtube.com/iframe_api
    提供YT.*API的?您能指出一个实时代码示例(jsfiddle.net或其他)吗?在步骤4中,我删除了iframeapi和widgetapi,以便在步骤5中重新加载它们。您可以在上找到实时代码示例。重新加载在toggleWebcam()函数中进行。同时,我可以通过直接将IFRAME而不是DIV占位符放在HTML页面中来实现它。这是一个很好的解决方法,还是会在API发生变化时立即中断?是的,这解决了我的问题,并按预期工作。非常感谢。你是我的英雄!这正是问题所在。我花了几个小时才弄明白问题出在哪里。非常感谢!