Mot*_*tie 5 javascript jquery youtube-api
我有一个嵌入了youtube视频,我希望应用YouTube API.我使用jQuery添加url参数如下(demo):
$(document).ready(function(){
var obj = $('object');
obj.find('embed').attr('src', function(i,s){return s+'&enablejsapi=1&version=3'})
obj.find('param[name=movie]').attr('value', function(i,v){return v+'&enablejsapi=1&version=3'})
$('.play').click(function(){
obj.find('embed')[0].playVideo();
});
$('.pause').click(function(){
obj.find('embed')[0].pauseVideo();
})
});
Run Code Online (Sandbox Code Playgroud)
这种方法在Firefox中运行良好,但在IE或Chrome中根本不适用(不确定其他浏览器).所以我的问题是如何修改它以使API在其他浏览器中工作?我是否必须完全删除对象并使用SWFObject替换它?
注意:嵌入代码直接来自YouTube.
更新:我想出如果我删除对象,添加url参数然后添加对象,我现在可以让它在Chrome中工作,但仍然不是IE(更新演示).
附录:当对象/嵌入已经包含启用代码时,为什么YouTube API不起作用?我试图避免使SWFObject成为一种依赖.
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="385">
<param name="movie" value="http://www.youtube.com/v/2Qj8PhxSnhg&hl=en_US&fs=1&enablejsapi=1&version=3"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/2Qj8PhxSnhg&hl=en_US&fs=1&enablejsapi=1&version=3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed>
</object>
Run Code Online (Sandbox Code Playgroud)
关于 swfobject - 是的。IE 处理 Flash 嵌入的方式与所有其他浏览器略有不同(感谢 activex)。请查看本文以了解原因,并查看SWFObject 文档以获取更多信息。
另外,我最近创建了一个 jQuery 插件来帮助使用播放器 API 控制嵌入式播放器(基本上就是您正在做的事情)。
看看吧,这是 jQuery TubePlayer 插件 - http://www.tikku.com/jquery-youtube-tubeplayer-plugin