YouTube iframe を ajax で追加しています (モーダル/ライトボックス レイヤー)。一つずつ。私はこれを行っているため(変更することはできません)、ドキュメントの準備ができている状態でYouTube APIを実行できません。iframe の ID を見つけるには、iframe が存在するときにスクリプトを追加して実行する必要があります。
最初の iframe ではすべて正常に動作します。ajaxでiframeを取得するときに、javascriptも追加します。
BUT:そのモーダルレイヤーを閉じて(パフォーマンス上の理由から、閉じますが、削除しません)、新しいビデオで別のレイヤーを開くと、YouTubeスクリプトをもう一度実行したいだけです。現在、2 つ目の YouTube API スクリプトを追加しても機能しません。
注: モーダルを閉じると、API でビデオが一時停止します。これは最初の iframe でのみ機能します。
私は何をすべきか?API を再初期化する実行する関数はありますか?
tsturzl を助けてくれてありがとう、でもうまくいかない。
モーダルを開き、コンテンツ (iframe やその他の要素を含む) を ajax で読み込みます。次に、YouTube API を実行し、ID を iframes ID に設定します。
モーダルを閉じると、player.pauseVideo(); を実行します。ビデオを一時停止します。モーダルは非表示になり (削除されず、ビデオは一時停止されます)、iframe はまだ html にあり、YouTube API の ID は「保存」されています。
今、別のYouTube iframeで別のモーダルを開きたいです(これもajaxでロードされています)。API を再度実行し、その ID を保存しようとするため、そのモーダルを閉じる (非表示にする) と、新しいビデオが一時停止しますが、機能しません。
それを行う方法はありますか?
注: これらのモーダルでは、ビデオは 1 つのプレビュー div に表示され、ユーザーは iframe を非表示/表示できます。彼らがそれを隠すと、ビデオは一時停止するはずです。iframe が非表示の場合、プレビュー div に画像が表示されます。