如何停止我的YouTube iFrame

时间:2013-04-10 07:35:14

标签: php javascript

我创建了一个YouTube列表,我可以点击加载youtube视频的文字。

只有一个问题:当我播放视频并点击另一个视频链接时,我正在播放的视频不会停止。所以我尝试使用jQuery停止它,但没有结果。

所以这就是我生成的php:

function generateVideo() {
    echo '<script type="text/javascript" src="scripts/video.js"></script>';
    $tags = initTags();
    $query = '
    SELECT * FROM `youtube_links`';
    $result = mysql_query($query);
    if ( !$result) {
        die('Error: '.mysql_error());
    }

    echo '<div id="content"><table>';
    $i = 0;
    $className = "";
    while ($row = mysql_fetch_array($result)) {
        $i++;
        if ($i == 1) {
            $className = "active";
        } else {
            $className = "inactive";
        }
        echo '
            <tr>
                <td>
                    <a class="'.$className.'" id="item_'.$i.'" onclick="switchVideo(this)">
                        '.$row['Title'].'
                    </a>
                </td>
            </tr>
            ';
    }
    echo '</table></div>';

    $query = '
    SELECT * FROM `youtube_links`';
    $result = mysql_query($query);
    if ( !$result) {
        die('Error: '.mysql_error());
    }

    echo '<div id="videoPlayer">';

    $i = 0;
    $className = "";
    while ($row = mysql_fetch_array($result)) {
        $link = $row['Link'];
        $i++;
        if ($i == 1) {
            $className = "activePlayer";
        } else {
            $className = "inactivePlayer";
        }
        echo '<iframe class="'.$className.'" id="ytplayer'.$i.'" type="text/html" width="640" height="390"
             src="'.$link.'?version=3&enablejsapi=1"
             frameborder="0">
             </iframe>';
    }

    echo '</div>';
}

这是我的JavaScript:

function switchVideo(obj) {
    var idText = obj.id;
    var idArray = idText.split("_");
    var id = idArray[1];

    var videoPlayer = document.getElementById('ytplayer' + id);

    var elements = document.getElementsByClassName("activePlayer");

    for (var i = 0; i < elements.length; i++) {
        elements[i].className = "inactivePlayer";
        $(elements[i]).pause();
    }

    $('.inactivePlayer').each(function() {
        $(this).stopVideo();
    }); 


    videoPlayer.className = "activePlayer";
}

您可以看到我将iftube API添加到iframe中,那么出了什么问题?

1 个答案:

答案 0 :(得分:-1)

可能是异步加载javascript Youtube API的情况。 你检查过了吗?

格雷茨,亚历克斯