使用SWFObject解决IE浏览器Flash控件激活问题
其实一直都在烦IE浏览器Flash控件激活问题,原来找到了一个[url=http://kalvin.cn/post/110/][color=#4a9ae9]IE中Flash控件的自动激活JS代码[/color][/url],名字叫ObjectSwap,但是有一个问题就是会造成浏览器先将页面上其它内容加载完后在加载这个flash,所以有时候如果网页加载比较慢的话,网网就给访客造成一个假象就是你这个flash根本就打不开!原来也搜索到过SWFObject,但表面上看起来很麻烦,所以就没有使用了,看见幽酷网,土豆网都使用这个JS来激活Flash控件,所以今天又去作者主页([url=http://blog.deconcept.com/swfobject/][color=#4a9ae9]http://blog.deconcept.com/swfobject/[/color][/url])看了他的例子,发现使用起来很简单:[code]
<script type="text/javascript" src="swfobject.js"></script>
<div id="flashcontent">
This text is replaced by the Flash movie.
</div>
<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");
so.write("flashcontent");
</script>[/code]
上面这个就是SWFObject嵌入网页的代码,如果英文基本过关的话,可以直接去作者主页查看说明,我这里装装帅,稍微解释一下:
SWFObject同样是一个使用Js激活Flash控件,的以第一步就是让你的网页里面加载SWFObject.js
然后后面是显示flash的层,里面的[color=#0000ff][u]id="flashcontent"[/u][/color]必需要跟后面[color=#0000ff][u]so.write("flashcontent");[/u][/color]的值一样,用于展示Flash
[color=#0000ff][u]This text is replaced by the Flash movie.[/u][/color]是表示如果访客的浏览器不支持Js或Flash时,将会显示此字符
[color=#0000ff][u]var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");[/u][/color]
这个就是最主要的部分了,分别表示[color=#0000ff][u]var so = new SWFObject(Flash文件地址, id值, 宽, 高, 需要定义的Flash播放器版本, 背景颜色 [, 质量, 访客端错误升级安装向导网址, 访客Flash版本错误转向地址l, 不使用SWFObject的网址(直接在网址后面加入?detectflash=false即可)]);[/u][/color] ,这后面中括号里面的内容默认没有加上去的,如果有需要可以自行添加上有时候部分Flash还需要定义其它参数,如allowFullScreen呀等其它参数的,就可以直接在Js中插入[color=#0000ff][u]so.addParam("参数", "值");[/u][/color]即可,如官方给出的例子:
[code]
<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");
so.addVariable("variable1", "value1");
so.addVariable("variable2", "value2");
so.addVariable("variable3", "value3");
so.write("flashcontent");
</script>
[/code]
我今天自己主要修改的是Discuz的一些Discuz! 代码,将swfobject.js里面的内容复制到include/javascript/common.js文件的最后面(推荐另外存文件,然后使用js调用,这是我个人的喜好):
将Flash代码修改为:
[code]
<div id="{MD5}"></div>
<script type="text/javascript">
var so = new SWFObject("{1}", "mymovie", "550", "400", "8", "#ffffff", "high");
so.addParam("allowScriptAccess", "sameDomain");
so.addParam("allowFullScreen", "true");
so.write("{MD5}");
</script>
[/code]
将插件CC视频播放器的标签修改为:
[code]
<div id="{MD5}"></div>
<script type="text/javascript">
var so = new SWFObject("http://union.bokecc.com/{1}", "mymovie", "500", "440", "8", "#000000", "high");
so.addParam("allowFullScreen", "true");
so.write("{MD5}");
</script>
[/code]
[[i] 本帖最后由 佳‰佳 于 2007-10-20 18:34 编辑 [/i]]
页:
[1]
