0

私はYoutube Iframe APIを使用しており、そのスクリプトを使用してプレーヤーが正常にロードされます。しかし、javascript コードを含む php ファイルに ajax 呼び出しを行ってプレーヤーを実行すると、実行されません。

function get_content(song_id,url,song_title) {
if (song_id == null)
    return;
    document.title = song_title + browser_title_suffix;
    $.get('/ajax/player.php',{song_id:song_id}, function(data) {
        $('#main_content').html(data).css({'opacity':0}).animate({'opacity':1});
        });
        }

/ajax/player.php にはこのコードが含まれています - https://developers.google.com/youtube/iframe_api_reference#Loading_a_Video_Player

ただし、プレーヤーは再びしません。player.remove() も試しましたが、それも役に立ちませんでした。

更新 1: 私の PHP ファイル:

var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

$(document).ready(function(){
get_content('.$row[song_id].',null,"'.$row[title].'");
});

</script>

私のJavaScriptファイル:

function get_content(song_id,url,song_title) {
if (song_id != null) {
    $.get('/ajax/player.php',{song_id:song_id}, function(data) {
        video_id = data;
        player = new YT.Player('player', {
            height: '390',
            width: '640',
            videoId: video_id,
            events: {
                'onReady': onPlayerReady,
                'onStateChange': onPlayerStateChange
            }
        });
    });

}
}

ただし、ビデオ プレーヤーは読み込まれません。

4

1 に答える 1

0

ajax経由でjavascriptを取得して、受け取ったばかりのjavascriptを実行することはできません。あなたがしたいことは、ajax経由でYouTubeビデオIDを送信し、次のような関数を使用してプレーヤーを配置することです:

function get_content(song_id,url,song_title) {
    if (song_id != null) {
        $.get('/ajax/player.php',{song_id:song_id}, function(data) {
            video_id = data;

            player = new YT.Player('player', {
                height: '390',
                width: '640',
                videoId: video_id,
                events: {
                    'onReady': onPlayerReady,
                    'onStateChange': onPlayerStateChange
                }
            });
        });
    }
}

さらに良いのは、JSON を試して、Jquery 経由でデータを送受信することです。

于 2013-02-10T20:33:55.540 に答える