博客中添加flash视频已是非常普遍的事,但有没有注意到一个问题,各大视频网站所提供的视频html分享代码并不符合xhtml里任何一个版本的标准。以下是添加了视频后的网站用w3c标准组织提供的xhtml验证网站验证出来的结果:
我们来看视频网站提供的分享代码:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="vedio.swf" />
代码应分成两个部分分析,即前面的
出现xhtml错误的原因其实很简单,
现在我们所要做的就是修改代码来做到符合标准,既然
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
很明显,他是在调用flash的com组件,非microsoft平台肯定不支持,取而代之的应是type属性,来指定object的数据类型。另外,FireFox用data属性来定位flash文件,而IE用param段来定位文件。有了这个思路接下来的事就好办了,我们只要加上以下两段来替换掉classid段:
type="application/x-shockwave-flash"
data="xxx" //这边的xxx就是param段中value所包含的部分
整理后的代码如下:
<object type="application/x-shockwave-flash" data="vedio.swf" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="vedio.swf" /></object>
可能会问,为什么还要保留codebase段,原因是保留他的话如果在碰到IE没有安装flash插件的情况,IE会自动下载插件并提示安装,反之就只会显示一个红叉。
至此,代码就可以完美通过xhtml验证了,算是为了维护网页标准做出的小小的贡献吧~~
» 转载请注明来源:Terence的窝 » 《让flash植入代码符合xhtml标准》