2016-08-23 12 views
1

既に作成したプレーヤーにアクセスする方法は?私の場合は既に定義されているプレーヤー(YT.Player)の参照を取得する

すでにこのように作成プレーヤーにイベントリスナーを追加します:それは私がそれを参照するグローバル変数を持っていない場合、私はにアクセスできないようですので、 https://developers.google.com/youtube/iframe_api_reference#Example_Video_Player_Constructors

をプレイヤーがローカル変数でありますこのプレーヤーは機能外です。

私の問題を理解するために、プレーヤーを機能内でローカルに定義するYoutube iframeを持つウェブサイトがあります。 私はこのiFrameの上に新しいプレーヤーを作成し、このようにイベントリスナーを追加したくない: https://developers.google.com/youtube/iframe_api_reference#Adding_event_listener player.addEventListener(イベント:文字列、リスナー:文字列):ボイド

私はすでに、リスナーを維持するためにイベントリスナーを追加したいですプレーヤーが作成されたときに定義されます。

私のコードはGoogleタグマネージャにあり、既に定義されているプレーヤーに動作を追加するため、プレーヤーを宣言するコードを変更したくないです。 Googleタグマネージャ

私はiFrameのプレイヤにアクセスすることができますpratically確信しているが、私はどのように... またはスクリプトで定義されたオブジェクトウィンドウ[「YT」]を見つけていない:iframe_api

おかげ

よろしく

トーマス

答えて

1

だから、私はこの解決策を見つける: https://stackoverflow.com/a/36366737/6748629

私は、プレイヤーがでのiFrameのユーチューブに宣言得ることができます:私はそれは他人を助けることを願っています

for (var e = document.getElementsByTagName("iframe"), x = e.length; x--;) { 
    if (/youtube.com\/embed/.test(e[x].src)) { 
     // get player if exist or create one without listener 
     var player = YT.get(e[x].id)||new YT.Player(e[x], { 
      events: { 
      } 
     }); 
     // now you can add listener and keep behavior when player already declared 
     player.addEventListener("onStateChange",onPlayerStateChange); 

    } 
} 

YT.get(#iFrame_id) 

は、だから、僕はプレーヤーとのaddEventListenerを取得し、文書を解析する必要があります。

関連する問題