我在使用<embed
&gt;的ASP.NET项目中收到以下警告:标记放一个.swf:
Warning: Validation (XHTML 1.0 Transitional): Element 'embed' is not supported.
取而代之的是“支持”的方式是什么?
答案 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