为什么我的嵌入式YouTube视频在Firefox中运行,而在Internet Explorer中无法运行?

时间:2009-09-24 00:29:55

标签: html cross-browser youtube

我正在使用以下代码显示YouTube视频。

<object width="425" height="344">
    <param name="movie" 
           value="**URL**">
    </param>
    <param name="allowFullScreen" 
           value="true">
    </param>
    <embed src="**URL**" 
           type="application/xshockwave-flash" 
           allowfullscreen="true" 
           width="425"
           height="344">
    </embed>
</object>

它适用于Firefox,但为什么不在Internet Explorer中使用?

我是一个全新的网络开发,所以我遇到了你退伍老人习惯的所有这些奇妙的不一致;)

3 个答案:

答案 0 :(得分:8)

为了阐明,它不起作用,因为object标记不完整。 Firefox放弃了object元素,而是使用了回退旧学校embed元素。 IE不支持embed,因此您什么也得不到。

object元素必须至少有一个type属性,告诉它要使用哪个插件和一个data属性告诉它要向该插件发送什么。在IE中,您还需要在对象内的data值中镜像<param name="movie">属性,因为它以不同方式运行插件。

IE不会以这种方式“流式传输”部分加载的Flash文件。为此,您必须使用ActiveX classid而不是type来告诉它使用哪个插件。如果您关心这一点(并且您可能不会:对于小文件,存根加载器以及在完成之前无用的文件,它没有区别)那么您必须开始提供嵌套对象或嵌入的组合,quickly becomes confusing

答案 1 :(得分:7)

试试这个:

<object type="application/x-shockwave-flash" data="VID_URL" width="425" height="344">
    <param name="movie" value="VID_URL" />
</object>

答案 2 :(得分:1)

以前浪费了几个小时来完成同样的问题。不同的原因虽然......

对于IE9,YouTube嵌入(至少是iframe)无效,因为我之前为Google广告服务器添加了针对IE的跟踪保护。在这种情况下,我必须禁用跟踪保护(安全&gt;跟踪保护)或点击地址栏右侧的按钮(“在此网站上过滤了一些内容”),以警告最终用户过滤内容。< / p>