Javascript 点击链接时如何停止youtube视频?
我在谷歌上搜索了一段时间,但我的问题没有得到任何好的结果。我还多次准备了来自gdocs的youtube api参考 我试图通过点击链接来阻止youtube视频 html: 放置单击的html的一部分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>&
<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。