ie6普及的大环境下暂时不要考虑w3c标准

红尘笑96

红尘笑96

2016-02-20 00:28

今天图老师小编给大家展示的是ie6普及的大环境下暂时不要考虑w3c标准,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

这问题不知道该责骂不会自动更新的ie6,还是该诅咒不懂向下兼容的w3c标准。
这是flash传统的嵌入方法:
object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="32" height="32"
param name="movie" value="test.swf" /
 param name="quality" value="high" /
 embed src="test.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="32" height="32"/embed
/object
使用 object 和 embed 标签来嵌入,细心的会发现,object 的很多参数和 embed 里面的很多属性是重复的。
有的浏览器支持 object ,有的支持 embed ,这也是为什么要修改 flash 的参数时两个地方都要改的原因。这种方法是 macromedia 一直以来的官方方法,最大限度的保证了 flash 的功能,没有兼容性问题。
但是自从有了w3c标准,和一些极力要求通过该标准的客户,事情复杂了:
embed被认为是非法的
embed 标签是 netscape 的私有标签,虽然 embed 标签应用广泛存在,但是从html3.2,html4.0到xhtml1.0,w3c都没有收录这个标签。使用embed 标签的页面将不能通过w3c校验。
其实他们这样考虑也是正确的,大部分西方国家的用户,正版vista系统基本上做到了普及,他们大多使用ie7.0/ie8.0等主流浏览器,使用这种简介的标签可以节省好几行代码:
  
object type="application/x-shockwave-flash" data="test.swf" width="200" height="100" parm name="movie" value="test.swf / /object

但是在盗版泛滥的中国,多数用户仍然在使用windows xp系统上自带的ie6浏览器,而它是不支持object标签的,只能使用变通的方式来解决。
目前的临时办法
既要符合标准,又想在所有浏览器正确显示flash应该怎么做?我们可以添加一段冗长的javascript来隐藏embed标签:
  
function getflashobject(flashsrc, objwidth, objheight, etcparam) {    
   var tag = "";    
   var baseflashdir="";    
   flashsrc = baseflashdir + flashsrc;    
   if ( etcparam != "" || etcparam != null ) {    
       if ( etcparam.substr(0, 1) == "?" )    
           flashsrc += etcparam;    
       else    
           flashsrc += "?" + etcparam;    
   }    
   tag += "object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ";    
   tag += "codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" ";    
   tag += "width="" + objwidth + "" height="" + objheight + """;    
   tag += "param name="movie" value="" + flashsrc + "" /";    
   tag += "param name="quality" value="high" /";    
   tag += "param name="wmode" value="transparent" /";    
   tag += "embed src="" + flashsrc + "" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" ";    
   tag += "type="application/x-shockwave-flash" width="" + objwidth + "" height="" + objheight + "" ";    
   tag += "wmode="transparent"/embed";    
   tag += "/object";    
   document.write(tag);    
}

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

不只如此,还需要在页面中添加若干调用该js的参数
  
script language="javascript" type="text/javascript"getflashobject('images/test.swf', '100%', '100%', '')/script

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

那新的问题又出现了,如果用户禁用了javascript怎么办?
难道要先写出更多的代码,判断用户使用的是什么浏览器,然后根据浏览器再输出合适的代码?我靠,多影响页面执行效率啊,为了一个w3c标准,多那么多行代码,让每一个访问自己网站的用户多等待1秒钟?
所以我想表述的观点是:
目前,ie6普及的大环境下,暂时不要考虑w3c标准。用心做好自己的页面,能少写几行代码就少写几行代码。不要为了标准去做标准。

展开更多 50%)
分享

猜你喜欢

ie6普及的大环境下暂时不要考虑w3c标准

Web开发
ie6普及的大环境下暂时不要考虑w3c标准

W3C盒子模型和IE6盒子模型

Web开发
W3C盒子模型和IE6盒子模型

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

IE盒子模型和标准W3C盒子模型

Web开发
IE盒子模型和标准W3C盒子模型

W3C标准以及XHTML和HTML

Web开发
W3C标准以及XHTML和HTML

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

通过W3C XHTML1.0标准验证的经验

Web开发
通过W3C XHTML1.0标准验证的经验

W3C公布最新的HTML5标准草案

Web开发
W3C公布最新的HTML5标准草案

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

闺女要适当吃一点才有劲减肥啊

闺女要适当吃一点才有劲减肥啊

只是心老了啊

只是心老了啊
下拉加载更多内容 ↓