首页 > 开发 > CSS > 正文

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

2024-07-11 08:26:47
字体:
来源:转载
供稿:网友
这是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);
}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表