Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 点击链接时如何停止youtube视频?_Javascript_Jquery_Youtube Api - Fatal编程技术网

Javascript 点击链接时如何停止youtube视频?

Javascript 点击链接时如何停止youtube视频?,javascript,jquery,youtube-api,Javascript,Jquery,Youtube Api,我在谷歌上搜索了一段时间,但我的问题没有得到任何好的结果。我还多次准备了来自gdocs的youtube api参考 我试图通过点击链接来阻止youtube视频 html: 放置单击的html的一部分 <ul class="info_filme"> <li><a class="filme sinopse active" data-info="rel_sinopse">Sinopse</a></li> <li>&

我在谷歌上搜索了一段时间,但我的问题没有得到任何好的结果。我还多次准备了来自gdocs的youtube api参考

我试图通过点击链接来阻止youtube视频

html:

放置单击的html的一部分

<ul class="info_filme">
    <li><a class="filme sinopse active" data-info="rel_sinopse">Sinopse</a></li>
    <li><a class="filme trailer" data-info="rel_trailer">Trailer</a></li>
    <li><a class="site" href="">Site</a></li>
</ul>
事实上,我成功地从js调用了url链接,但我必须使用iframe,我不知道我做错了什么。
如果有人能帮助我,我将非常感激。

为什么不像下面那样将视频嵌入到您的页面中

<embed id="playerid" width="100%" height="100%" allowfullscreen="true" allowscriptaccess="always" quality="high" bgcolor="#000000" name="playerid" style="" src="http://www.youtube.com/apiplayerbeta?enablejsapi=1&playerapiid=normalplayer" type="application/x-shockwave-flash">

然后,您可以使用以下命令停止视频:

var myPlayer = document.getElementById('playerid');

<a href="#" onclick="myPlayer.stopVideo();">Stop Video</a>
var myPlayer=document.getElementById('playerid');

为什么不像下面那样将视频嵌入到页面中

<embed id="playerid" width="100%" height="100%" allowfullscreen="true" allowscriptaccess="always" quality="high" bgcolor="#000000" name="playerid" style="" src="http://www.youtube.com/apiplayerbeta?enablejsapi=1&playerapiid=normalplayer" type="application/x-shockwave-flash">

然后,您可以使用以下命令停止视频:

var myPlayer = document.getElementById('playerid');

<a href="#" onclick="myPlayer.stopVideo();">Stop Video</a>
var myPlayer=document.getElementById('playerid');

问题是您在jQuery对象上调用的是
.stopVideo()
,而不是在YouTube播放器对象上调用的。YouTube API不会将其控制函数导出到iframe元素,当然也不会导出到jQuery

与其自己创建iframe,不如让YouTube API为您完成,就像YouTube iframe API文档中的那样

    var player = new YT.Player($('.rel_trailer')[0], {
      height: '315',
      width: '420',
      videoId: '8Af372EQLck',
      events: {
        'onReady': function() {
            $('.info_filme .filme').click(function(){
                player.stopVideo();
            });
        },
        'onStateChange': onPlayerStateChange
      }
    });
传递给
YT.Player
的第一个参数是希望YouTube将视频放入其中的DOM元素

<div class="box_filme rel_trailer"></div>
YouTube API变得有点棘手,因为它的很多功能都是异步的。如果您想要更简单的东西,Popcorn.js可以将YouTube播放器封装在一个模仿HTML视频元素的API中(如我在中所述)

您需要加载以下脚本:

<script type="text/javascript" src="popcorn.js"></script>
<script type="text/javascript" src="popcorn._MediaElementProto.js"></script>
<script type="text/javascript" src="popcorn.HTMLYouTubeVideoElement.js"></script>

Popcorn将处理加载YouTube的API以及随后发生的所有异步事件。如果您不打算使用Popcorn的主要注释功能,那么加载大量不必要的javascript,但是如果您不想被YouTube的API所困扰,那么它将为您节省大量时间。如果你想拥有来自多个来源(如HTML5、Vimeo)的视频,你可以很容易地修改代码。

问题是你在jQuery对象上调用
.stopVideo()
,而不是在YouTube播放器对象上。YouTube API不会将其控制函数导出到iframe元素,当然也不会导出到jQuery

与其自己创建iframe,不如让YouTube API为您完成,就像YouTube iframe API文档中的那样

    var player = new YT.Player($('.rel_trailer')[0], {
      height: '315',
      width: '420',
      videoId: '8Af372EQLck',
      events: {
        'onReady': function() {
            $('.info_filme .filme').click(function(){
                player.stopVideo();
            });
        },
        'onStateChange': onPlayerStateChange
      }
    });
传递给
YT.Player
的第一个参数是希望YouTube将视频放入其中的DOM元素

<div class="box_filme rel_trailer"></div>
YouTube API变得有点棘手,因为它的很多功能都是异步的。如果您想要更简单的东西,Popcorn.js可以将YouTube播放器封装在一个模仿HTML视频元素的API中(如我在中所述)

您需要加载以下脚本:

<script type="text/javascript" src="popcorn.js"></script>
<script type="text/javascript" src="popcorn._MediaElementProto.js"></script>
<script type="text/javascript" src="popcorn.HTMLYouTubeVideoElement.js"></script>

Popcorn将处理加载YouTube的API以及随后发生的所有异步事件。如果您不打算使用Popcorn的主要注释功能,那么加载大量不必要的javascript,但是如果您不想被YouTube的API所困扰,那么它将为您节省大量时间。如果您想获得来自多个来源(如HTML5、Vimeo)的视频,您将能够轻松地修改代码。

我正在尝试使用此嵌入标记,但它不起作用。它只显示一个黑色方块,没有任何播放器选项或视频。看看:我做错了什么?我还尝试在没有“../embed/”的情况下使用src。我尝试使用这个嵌入标记,但它似乎不起作用。它只显示一个黑色方块,没有任何播放器选项或视频。看看:我做错了什么?我还尝试在没有“../embed/”的情况下使用src。顺便说一句,您的“iframe\u player”的jQuery选择器是不正确的。它应该是“#iframe_player”以匹配元素的id。顺便说一句,“iframe_player”的jQuery选择器不正确。它应该是“#iframe_player”以匹配元素的id。