您的位置:首页 > 其它

符合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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: