0

埋め込まれたYoutubeビデオが終了したら、DIVを非表示にしようとしています。私のプラットフォームはDrupal7.xで、JQueryを使用してdivを表示および非表示にしています。onYouTubePlayerReady関数を起動するのに問題があり、これがすべて発生しません。すべてのファイルは私のウェブサーバー上にあります。YouTubeがローカルでは機能しないと説明しているため、これをローカルで試していません(http://goo.gl/5qeKC

私の頭のセクション:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script type="text/javascript" src="http://dev.mydomain.com/mytheme/site/sites/all/themes/mytheme/js/hfbusiness.js?m4hr22"></script>

hfbusiness.jsファイルには、次のものがあります(このファイルは、表示されるjavascriptアラートを起動できるため、ロードされて機能しています)。

function onYouTubePlayerReady(id) {
    console.log("onYouTubePlayerReady() Fired!");
    var player = $("#youtube_player").get(0);
  }

Index.phpに含まれるもの:

<div class="marketing_video">
<iframe id="ytplayer" type="text/html" width="640" height="360" src="http://www.youtube.com/embed/hIaqCG8O5uU?version=3&enablejsapi=1&rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>
</div>

ビデオは、iframeで定義されたオプションで問題なく表示および再生されます。ただし、YouTubePlayerReady関数が起動されることはありません。私はこれで壁に頭を打ちつけていますが、これまでのところ私は頭痛を達成しただけです。

助けてくれてありがとう。

4

1 に答える 1

0

iFrame の代わりに swfobject.js を使用することで問題を回避できました。以下のように allowScriptAccess を許可する方法を見つけた場合、iFrame で同じことができるかどうか疑問に思っています。誰かがこの質問に対する答えを知っていれば、答えをいただければ幸いです。

私のインデックスファイルでは:

<script type="text/javascript">
    var params = { allowScriptAccess: "always" };
    var atts = { id: "myytplayer" };
    swfobject.embedSWF("http://www.youtube.com/v/hIaqCG8O5uU?enablejsapi=1&playerapiid=ytplayer&version=3", "ytapiplayer", "425", "356", "8", null, null, params, atts);

  </script>

hfbusiness.js

var $hfjq = jQuery.noConflict()

function onYouTubePlayerReady(id) {
    var player = document.getElementById("myytplayer");
    player.addEventListener('onStateChange', 'playerState');
}

function playerState(state) {
    if(state == 0) {
        $hfjq(".marketing_video").hide();
    }
}
于 2012-05-27T15:02:52.767 に答える