不支持HTML中的<embed />标记

时间:2009-10-21 02:16:56

标签: validation xhtml embed

我在使用<embed&gt;的ASP.NET项目中收到以下警告:标记放一个.swf:

Warning: Validation (XHTML 1.0 Transitional): Element 'embed' is not supported.

取而代之的是“支持”的方式是什么?

5 个答案:

答案 0 :(得分:6)

XHTML不支持非标准embed标记,而是支持基于标准的object元素。有关详细信息,请参阅http://www.bernzilla.com/item.php?id=681,但简而言之:

<object type="application/x-shockwave-flash" data="c.swf?path=movie.swf" width="400" height="300">
    <param name="movie" value="c.swf?path=movie.swf" />
    <img src="noflash.gif" width="200" height="100" alt="No Flash" />
</object>

请注意,虽然使用object并不总能在旧浏览器中正常运行,但请先使用这两种格式进行一些测试。 List Apart有一篇精彩的文章称为“Flash Satay: Embedding Flash While Supporting Standards”,它向您展示了实现它的跨浏览器方式,如上例所示。

答案 1 :(得分:4)

可能值得研究SWFObject,许多项目使用它,以便他们可以验证并轻松地以跨浏览器方式嵌入视频。如果你不需要动态嵌入或版本检测,那么去抖的方法指向另一个好方法。

答案 2 :(得分:3)

HTML5(以及XHTML5)现在允许<embed>元素。切换到HTML5(<!DOCTYPE html>),它将验证。

答案 3 :(得分:2)

使用<object>元素。

请参阅:http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.3

embed不是标准的,但是得到的支持最广泛。

<object type="application/x-shockwave-flash" data="movie.swf">
     <param name="movie" value="movie.swf" /> 
</object>

当然,你可以使用其他param元素来处理窗口模式(wmode)之类的东西。但请注意,在IE中需要单击要激活的电影,这就是为什么许多人使用JS为所有浏览器动态替换embed的元素,因此不需要在IE中点击。

答案 4 :(得分:2)

本文详细介绍了如何在保持标准的同时嵌入Flash文件:

A List Apart: Flash Satay: Embedding Flash While Supporting Standards