用户名: 密 码:
您现在的位置:首页 >> SEO技巧 >> 内容

Flash标签如何通过w3c的检测

时间:2009/11/17 16:34:58 点击:3908

  核心提示:1、embed是非法的  embed标签是Netscape的私有标签,虽然embed标签应用广泛存在,但是从HTML3.2,HTML4.0到XHTML1.0,W3C都没有收录这个标签。使用embed标签的页面将不能通过W3C校验。  2、应该用object  W3C推荐的是object标签。甚至在X...

1、embed是非法的
  <embed>标签是Netscape的私有标签,虽然<embed>标签应用广泛存在,但是从HTML3.2,HTML4.0到XHTML1.0,W3C都没有收录这个标签。使用<embed>标签的页面将不能通过W3C校验。

  2、应该用object
  W3C推荐的是<object>标签。甚至在XHTML2中,<img>都要被<object>所取代。用<object>方法插入flash的代码是:

ExampleSourceCode[www.div-css.net]
<objecttype="application/x-shockwave-flash"data="test.swf"width="200"height="100">
<parmname="movie"value="test.swf/></object>

  但是这个方法在IE5-IE6/Win上不能正确显示(不能连续播放,要下载完才能放),在低版本的可以正确显示。后来采用先调一个小flash文件再嵌入大flash文件的方法解决了连续播放的问题,但是在IE5以上版本有时依然出现不能显示flash的情况。

  3、目前的临时办法
  那么既要符合标准,又想在所有浏览器正确显示flash应该怎么做?macromedia网站是如何通过W3c校验的?有设计师想到了用JavaScript来隐藏非法的<embed>标签:

ExampleSourceCode[www.div-css.net]
<scripttype="text/javascript">if(navegiator.mimeTypes&&navigator.
mimeTypes["application/x-shockwave-flash"]{
document.write('<embedsrc="test.swf"...

  这是目前比较好的解决办法。你一定要插flash,就用js调用。这种方法可以欺骗W3C的校验程序,使页面通过校验。但仅仅是"欺骗",而不是真符合标准。

  macromedia是怎么做的呢?看到这句代码:

ExampleSourceCode[www.div-css.net]
<!--$RCSfile:FlashDetection2k.pm,v$$Revision:1.68$:yourbrowser'sacceptheader
indicatesyouhaveFlash6,0,65,0orbetter,soyou'reOKforthisFlash6movie,
hereitcomes.-->

  它采用了一个折中二选一的办法:
  (1)、首先javascript来判断你的浏览器版本和flashplayer的版本;
  (2)、根据版本的不同在后台动态的生成HTML代码。

  简单说就是默认采用<object>方法,如果浏览器不能处理object的MIME类型“application/x-shockwave-flash”,它就插入子元素<embed>。说穿了,这和用js隐藏<embed>方法类似,也是一种“欺骗”的办法,但这是目前能够做到的最符合标准的,比较完美的做法了。

  要想真正抛弃<embed>,只能等IE浏览器对<object>更好的支持才行,也许要等到Longhorn出来了。

文章来源:http://www.xinxilong.com

作者:不详 来源:网络
相关评论
发表我的评论
  • 大名:
  • 内容:
  • 论坛群发大师(www.xinxilong.com) © 2008 版权所有 All Rights Resverved.
  • Email:4984672[at]qq.com 沪ICP备12025887号-1
  • Powered by 论坛群发大师