IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    让flash植入代码符合xhtml标准

    Terence发表于 2010-02-23 07:11:03
    love 0

          博客中添加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" />type="application/x-shockwave-flash" width="400" height="300" src="vedio.swf"></embed></object>

          代码应分成两个部分分析,即前面的标签段和后面的标签段,2段内容提供的都是相同的功能,之所以这么写是因为视频网站要做到各个浏览器的显示兼容,IE浏览器使用的是标签,而FireFox用的是标签。

          出现xhtml错误的原因其实很简单,语法并不在w3c制定的xhtml标准内,其原因有很多,但我认为最主要是因为这个标签是网景公司当年叱咤风云的Netscape浏览器所创设的,中间可能有版权问题、标准问题乃至后来的浏览器没落等一系列的影响所导致的。虽然此标签仍被多数浏览器所支持,但从维护标准的立场来说,标准统一必是一个大的趋势。

          现在我们所要做的就是修改代码来做到符合标准,既然标签是符合xhtml规范的,那么我们就从他入手。先删除标签段,但此时的标签段只能在IE中发挥作用,而FireFox等第三方浏览器是显示不出视频的,原因是其中的:

    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验证了,算是为了维护网页标准做出的小小的贡献吧~~ :lol:

     » 转载请注明来源:Terence的窝 » 《让flash植入代码符合xhtml标准》

    相关日志

    • Google阅读器里RSS的显示问题 (0)
    • 写在最最开始 (4)
    • WordPress数据库的一处性能优化 (1)
    • 博客维护日记 (0)
    • TinyMCE编辑器对FireFox的兼容不太好 (1)
    • 我正在使用的插件列表 (1)
    • 水的故事 (0)
    • 换空间了 (1)
    • 网页中连续字符手动换行的方法 (0)
    • 电子杂志《物华特刊》发布! (2)


沪ICP备19023445号-2号
友情链接