为什么object比embed更好
尽管object缺乏跨浏览器的支持,但是object仍然比embed提供了更多的东西,为了跟进标准,它还提供了对于替换内容的良好支持。
object标签允许你在它里面包含替换内容,如果这种实现不被支持,或者插件没有安装,那么替换内容将被显示。这个内容还将被搜索引擎收录,使得它成为创建对搜索引擎友好内容的好帮手。
embed标签支持noebmed标签所提供的替换内容,但是它只被那些连embed标签都不支持的浏览器支持,例如Windows Mobile上的IE。不像object,当embed被支持但是却没有安装flash插件的时候,它并不支持替换内容。它依赖于pluginurl和 pluginspage属性来显示一个谜一样的破烂图片,点一下可以去安装插件。非常的90年代。
我相信提供一个关于插件内容的替换内容,并且同时给出巧妙的提示,让用户知道下载flash插件会获得更好的体验,这样的解决方案是更好的。(还有一个原因就是我们不是那么需要这个经常被用错的codebase属性)
纯标签方法的局限性
考虑一下我们之前定义的原则——顺应标准,跨浏览器支持,支持替换内容,避免播放器与内容不匹配,自动激活活动内容,和便于实现——显而易见的是仅靠标签能做到的太有限了。
虽然标签表示了flash内容或替换内容的意义,但它没法给我们提供一种解决方案来避免flash内容和播放器不匹配或者一种变通方法来避免点击激活,而且它也并不总是最简单的实现方法。
不过,还是简单的看一下现在最流行的标签“联合”方法吧。
两次烹饪法
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8- »
444553540000" codebase="http://fpdownload.macromedia.com »
/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" »
width="300" height="120">
<param name="movie" value="myContent.swf" />
<embed type="application/x-shockwave-flash" »
src="myContent.swf" width="300" height="120" »
pluginspage="http://www.macromedia.com/go »
/getflashplayer" />
</object>
如你所见,这个办法仅仅把通用的和专用的标签弄在一起,显然是只为了解决跨浏览器支持问题,并不和标准兼容。
两次烹饪法显得冗余,并且使你的网页不标准,还没有提供一种显示替换内容的机制。它易用的唯一原因是Flash IDE生成了它:所以,别再让任何人就凭着记忆像这样写了。
嵌套object法
嵌套object法是两次烹饪法的一个不错的替代品,因为它遵循标准并且支持替换内容。我们看下:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8- »
444553540000" width="300" height="120">
<param name="movie" value="myContent.swf" />
<object type="application/x-shockwave-flash" »
data="myContent.swf" width="300" height="120">
<p>Alternative content</p>
</object>
</object>
不幸的是,它支持仍然缺乏跨浏览器的支持,对于IE的嵌套object bug和Safari的嵌套param bug仍然无能为力。一个常用的方法是利用IE的条件注释来避免这个浏览器的陷阱。
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-»
444553540000" width="300" height="120">
<param name="movie" value="myContent.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" »
data="myContent.swf" width="300" height="120">
<!--<![endif]-->
<p>Alternative content</p>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
除了前面提到的冗余问题,这个方法还更麻烦,因为它使用了一个丑陋的权宜方式,会使得用来生成页面的服务器端代码更加复杂。
更多的网页中嵌入flash的最佳方案请到论坛查看: http://BBS.TC711.COM
【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】
来源:
互联网
日期:2009-2-20