【发布时间】:2013-05-27 09:59:22
【问题描述】:
我在使用<embed> 标记放置 .swf 的 ASP.NET 项目中收到以下警告:
警告:验证(XHTML 1.0 过渡):不支持元素“嵌入”。
什么是“支持”的方式来代替???
【问题讨论】:
-
人们在网页中放入的 许多 东西不 验证,但这并不能阻止它们正常工作。
标签: validation xhtml embed
我在使用<embed> 标记放置 .swf 的 ASP.NET 项目中收到以下警告:
警告:验证(XHTML 1.0 过渡):不支持元素“嵌入”。
什么是“支持”的方式来代替???
【问题讨论】:
标签: validation xhtml embed
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 并不总是在旧版浏览器中正常工作,但请先使用这两种格式进行一些测试。 A List Apart 对此有一篇精彩的文章,名为“Flash Satay: Embedding Flash While Supporting Standards”,它向您展示了如上例所示的跨浏览器实现方式。
【讨论】:
<embed> 在任何版本的 HTML 中都没有被弃用,因为它从未出现在任何规范中(现在 HTML5 除外)。请参阅stackoverflow.com/questions/5972555/… 了解更多信息。
可能值得研究SWFObject,很多项目都使用它,以便他们可以验证并轻松地以跨浏览器的方式动态嵌入视频。如果不需要动态嵌入或版本检测,Dereleased 指向的 Flash satay 方法是另一个好方法。
【讨论】:
HTML5(以及 XHTML5)现在允许 <embed> 元素。切换到 HTML5 (<!DOCTYPE html>) 即可验证。
【讨论】:
本文非常详细地描述了如何在保持标准的同时嵌入 Flash 文件:
A List Apart: Flash Satay: Embedding Flash While Supporting Standards
【讨论】:
使用<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>
您当然可以将其他参数元素用于窗口模式 (wmode) 等。但请注意,在 IE 中,电影需要点击才能激活,这就是为什么许多人使用 JS 为所有浏览器动态替换元素为 embed,因此无需在 IE 中进行点击。
【讨论】: