7

我正在使用以下代码来显示 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 中无效?

我是 Web 开发的新手,所以我遇到了你们这些退伍军人习惯的奇妙的不一致;)

4

3 回答 3

8

需要说明的是,它不起作用,因为object标签不完整。Firefox 放弃了该object元素并改用了后备的老式embed元素。IE 不支持embed,所以你什么也得不到。

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

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

于 2009-09-24T01:53:25.317 回答
7

试试这个:

<object type="application/x-shockwave-flash" data="VID_URL" width="425" height="344">
    <param name="movie" value="VID_URL" />
</object>
于 2009-09-24T00:36:12.267 回答
1

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

对于 IE9,YouTube 嵌入(至少 iframe)不起作用,因为我之前为谷歌广告服务器添加了 IE 跟踪保护。在这种情况下,我必须禁用跟踪保护(安全 > 跟踪保护)或单击地址栏右侧的按钮(“此站点上已过滤某些内容”),以提醒最终用户注意已过滤的内容。

于 2012-05-10T22:46:35.510 回答