如何停止我的YouTube iFrame

How to stop my YouTube iFrame

本文关键字:iFrame YouTube 我的 何停止      更新时间:2023-09-26

我做了一个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";
}

你可以看到我添加了youtube API到iframe,那么是什么出了问题?

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

Greetz,亚历克斯