符合web标准的嵌入透明Flash背景的方法(兼容IE和FireFox)
2009-03-23 12:58
471 查看
做项目的时候避免不了要向网页中插入flash的透明背景文件,那么如何在网页中嵌入的Flash又符合web标准呢?目前还没有一个完美的解决办法,(使用embed标签不符合WEB标准)于是我将Flash嵌入标签写入js文件中,通过变量传递参数的办法来输出FLASH文件回避不符合标准的标签。 虽然这样子是可以通过了W3C的验证,但还是存在着问题:假如你的导航菜单是用FLASH来实现的,而普通用户又禁用了JS,你想想后果有多可怕(用户将找不到导航菜单),你将永远的失去这个用户。所以如果您的导航菜单是用FLASH来实现的话,请不要用这种方法来实现。
首先建立一个JS文件flash.js。写入如下代码:
function flash(file,w,h) {
document.write('<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="'+w+'" height="'+h+'"> ');
document.write('<param name="movie" value="' + file + '">');
document.write('<param name="quality" value="high"> ');
document.write('<param name="wmode" value="transparent"> ');
document.write('<param name="menu" value="false"> ');
document.write('<embed src="' + file + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+w+'" height="'+h+'" wmode="transparent"></embed> ');
document.write('</object> ');
}
上面的js脚本中自定义了一个flash函数,并设置三个变量,它们分别是:flile 文件链接地址,w 输出的FLASH宽度,h 输出的FLASH高度。要在IE中实现flash背景透明,只需加这个标签:<param name="wmode" value="transparent"> .而在FireFox浏览器中起作用的是<embed></embed>标签,所以还要额外的加入<embed wmode="transparent" ></embed>, 才能同时兼容IE和FireFox, 实现flash的背景透明效果。代码如上:
在XHTML中向这个函数传递变量即可实现flash的嵌入。如下代码:
<div id="banner">
<script type="text/javascript">flash('banner.swf','1000','120');</script>
</div>
在ID为banner的容器内部嵌入js脚本,变量依次为:文件路径、宽度、高度!
看下面的全部代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta content="all" name="robots" />
<meta name="author" content="Leo.lin 小猪" />
<meta name="keywords" content="web标准 嵌入 Flash 方法" />
<meta name="description" content="符合web标准的嵌入Flash的方法" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>符合web标准的嵌入Flash的方法</title>
<script type="text/javascript" language="javascript" src="flash.js"></script>
</head>
<body>
<div id="banner">
<script type="text/javascript">flash('banner.swf','1000','120');</script>
</div>
</body>
</html>
相关文章推荐
- 让Flash背景透明兼容Firefox、IE 6和IE 7的代码
- 让Flash背景透明兼容Firefox、IE 6和IE 7的代码
- 在IE下FLASH背景透明而在FF下不透明的解决方法
- 完美兼容IE及Firefox的PNG背景透明CSS代码
- flash透明\flash置底无效\flash遮挡div的解决方法 兼容Firefox ,IE,chrome浏览器
- 关于背景透明,文字不透明的最佳方法,兼容IE
- IE, FireFox, Opera 浏览器支持CSS实现Alpha透明的方法 兼容问题
- 背景透明文字不透明的最佳方法兼容IE(以背景黑色透明度0.5为例)
- 在IE下FLASH背景透明而在FF下不透明的解决方法
- IE, FireFox, Opera 浏览器支持CSS实现Alpha透明的方法 兼容问题
- 关于背景透明,文字不透明的最佳方法,兼容IE
- 符合web标准的嵌入Flash的方法
- 兼容IE、Firefox的背景半透明内容不透明设置
- 关于背景透明,文字不透明的最佳方法,兼容IE
- IE, FireFox, Opera 浏览器支持CSS实现Alpha透明的方法 兼容问题
- IE,firefox中的flash背景透明代码
- 在IE下FLASH背景透明而在FF下不透明的解决方法
- 兼容IE、Firefox的背景半透明内容不透明设置
- 在IE和FireFox中实现Flash背景透明和解决绝对定位元素被Flash遮住的问题
- 背景透明文字不透明的最佳方法兼容IE(以背景黑色透明度0.5为例)