Javascript 在现有播放器上启用YouTube API
我有一个嵌入的youtube视频,我希望应用youtube API。我使用jQuery添加url参数,如下所示(): 这种方法在Firefox中非常有效,但在IE或Chrome中根本不起作用(对其他浏览器不太清楚)。所以我的问题是如何修改它,使API在其他浏览器中工作?我是否必须完全移除该对象并使用替换 注意:嵌入代码直接来自YouTubeJavascript 在现有播放器上启用YouTube API,javascript,jquery,youtube-api,Javascript,Jquery,Youtube Api,我有一个嵌入的youtube视频,我希望应用youtube API。我使用jQuery添加url参数,如下所示(): 这种方法在Firefox中非常有效,但在IE或Chrome中根本不起作用(对其他浏览器不太清楚)。所以我的问题是如何修改它,使API在其他浏览器中工作?我是否必须完全移除该对象并使用替换 注意:嵌入代码直接来自YouTube 更新:我想如果我删除了这个对象,添加了url参数,然后又添加了这个对象,我现在可以让它在Chrome中工作,但仍然不能在IE()中工作 附录:当对象/嵌
更新:我想如果我删除了这个对象,添加了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>
关于swfobject-是。IE对待flash嵌入的方式与其他浏览器略有不同(感谢activex)。查看以了解原因,并查看以了解更多信息 另外,我最近创建了一个jQuery插件,以帮助使用player API控制嵌入式播放器(基本上就是您正在做的事情)
检查一下,这是jQuery TubePlayer插件-IE找不到
$('object')
可能是因为您需要指定正确的类型(对obj长度发出警报),但是如果您这样做obj=$('embed')
,它会起作用。用另一种方式来包装事情可能是明智的,那就是做$('问题似乎是,当您更改元素的src属性时,Chrome和IE不会更新元素的DOM/embed api。如果您直接在代码中添加查询字符串,代码确实可以工作。您的站点是否要求动态添加它?@Manticore:这不是一个要求,我正在尝试修改插件。视频代码/链接是由用户在一个列表中,因此我试图确定最简单的方法来实现这一点,而无需设置任何规则,如无嵌入标记。我也遇到了同样的问题,IE在添加classid=“clsid:D27CDB6E-AE6D-11cf-96B8-444553540000”后开始对我进行适当的操作SWFObject添加的属性。因此,看起来您依赖于SWFObject插件。我正在试图找到问题的本质。通过SWFObject代码挖掘浏览器之间的差异对我来说不是很有启发性。我放弃了,只是继续使用SWFObject插件,所以我将把您的答案标记为已接受尽管我仍然找不到问题的本质。尽管如此,谢谢!即使没有CSID,至少在IE8中,我也无法复制IE没有找到$('object')
的问题。我确实尝试过像SWFObject文件那样使用outerHTML
添加原始HTML,但似乎没有任何区别。
<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>