4

YouTube Upload Widgetをロード、破棄、再ロードする必要がありますが、残念ながら再ロードは機能しません。

次の手順を実行しました。

  1. ハウツーで説明されているように、Youtubeアップロードウィジェットをロードしました-作品
  2. ウェブカメラからビデオをキャプチャします -動作します
  3. )を使用してウィジェットを破棄しますwidget.destroy(-動作します
  4. HTMLからスクリプト要素を削除します-動作します
  5. ステップ 1 のように API をリロードします -何も起こりません

なぜこれが機能しないのですか?

4

2 に答える 2

4

onYouTubeIframeAPIReady()window.YT.*インターフェイスが外部スクリプトを介してロードされる場合、ページごとに1回だけ呼び出されます。ページから要素を削除して<script src="http://www.youtube.com/iframe_api">から再度追加しても、再度トリガーされることはありませんonYouTubeIframeAPIReady()

アップロードウィジェットを含むを破棄してから<iframe>、新しいウィジェットでホストされる新しいウィジェットを作成する場合は、それが機能するはずですが、2回目のコールバック<div>内から行う必要はありません。その時点ですでに利用可能になっているので、コード内のどこからでもそのインターフェイスを直接使用してください。onYouTubeIframeAPIReady()window.YT.UploadWidget()

于 2012-10-28T01:10:23.933 に答える
3

onYouTubeIframeAPIReady()は、YouTube API が読み込まれるときに 1 回だけ呼び出されます。答えは、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();
}

幸運を。

于 2013-04-11T14:33:12.037 に答える