在IE中,去掉FLASH虚线外框的办法(两种方法)
这次,从网上找到了这样一个方法,能解决很多朋友头疼的FLASH在IE里面,必须先点“单击以激活此插件”这么麻烦的操作。废话不说,以下是操作: 首先新建一个js文件,文件名:AC_RunActiveContent.js 代码如下: 程序代码//v1.0 //Copyright 2006 Adobe Systems, Inc. All rights reserved. function AC_AddExtension(src, ext) { if (src.indexOf('?') != -1) return src.replace(/\?/, ext+'?'); else return src + ext; } function AC_Generateobj(objAttrs, params, embedAttrs) { var str = '<object '; for (var i in objAttrs) str += i + '="' + objAttrs[i] + '" '; str += '>'; for (var i in params) str += '<param name="' + i + '" value="' + params[i] + '" /> '; str += '<embed '; for (var i in embedAttrs) str += i + '="' + embedAttrs[i] + '" '; str += ' ></embed></object>'; document.write(str); } function AC_FL_RunContent(){ var ret = AC_GetArgs ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" , "application/x-shockwave-flash" ); AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs); } function AC_SW_RunContent(){ var ret = AC_GetArgs ( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000" , null ); AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs); } function AC_GetArgs(args, ext, srcParamName, classid, mimeType){ var ret = new Object(); ret.embedAttrs = new Object(); ret.params = new Object(); ret.objAttrs = new Object(); for (var i=0; i < args.length; i=i+2){ var currArg = args[i].toLowerCase(); switch (currArg){ case "classid": break; case "pluginspage": ret.embedAttrs[args[i]] = args[i+1]; break; case "src": case "movie": args[i+1] = AC_AddExtension(args[i+1], ext); ret.embedAttrs["src"] = args[i+1]; ret.params[srcParamName] = args[i+1]; break; case "onafterupdate": case "onbeforeupdate": case "onblur": case "oncellchange": case "onclick": case "ondblClick": case "ondrag": case "ondragend": case "ondragenter": case "ondragleave": case "ondragover": case "ondrop": case "onfinish": case "onfocus": case "onhelp": case "onmousedown": case "onmouseup": case "onmouseover": case "onmousemove": case "onmouseout": case "onkeypress": case "onkeydown": case "onkeyup": case "onload": case "onlosecapture": case "onpropertychange": case "onreadystatechange": case "onrowsdelete": case "onrowenter": case "onrowexit": case "onrowsinserted": case "onstart": case "onscroll": case "onbeforeeditfocus": case "onactivate": case "onbeforedeactivate": case "ondeactivate": case "type": case "codebase": ret.objAttrs[args[i]] = args[i+1]; break; case "width": case "height": case "align": case "vspace": case "hspace": case "class": case "title": case "accesskey": case "name": case "id": case "tabindex": ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1]; break; default: ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1]; } } ret.objAttrs["classid"] = classid; if (mimeType) ret.embedAttrs["type"] = mimeType; return ret; } 然后再应用页面中head内加入 程序代码<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script> 在要插入flash的地方加上以下 下面这段JS修改的时候要注意,一共要修改四个地方: 300 是宽度; 200 是高度; images/killIEBorder 是路径和文件名,修改时注意,共有两处,还要特别注意,文件名后面不要加“.swf”,此后缀已经写在AC_RunActiveContent.js中 程序代码<script type="text/javascript">AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','300','height','200','src','images/killIEBorder','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','wmode','transparent','movie','images/killIEBorder' ); //end AC code</script> <!--遇到浏览器禁用javascript时将调用下面这段<noscript></noscript>内的代码,就是Dreamweaver升级到8.0.2之前我们插入flash时的那段代码。<param> 标签针对IE起作用,<embed> 标签针对Firefox和Netscape起作用。--> <noscript> <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="300" height="200"> <param name="movie" value="images/killIEBorder.swf"> <param name="quality" value="high"> <param name="wmode" value="transparent"> <embed src="images/killIEBorder.swf" width="300" height="200" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"></embed> </object> </noscript> 完成 第二种方法: (此代码在FF里不适用。今天试了一下,只要加入一串<embed>属性就好了!
这里就省略了,同行的朋应该明白<embed>里应该写哪些属性吧?*^_^*)
原文地址:
http://www.shou-nao.com/tw/charles/article.cfm?ATC_ID=866EA332-ADB0-5700-EB5E9A89B5315AE6 下载范例: http://www.shou-nao.com/tw/charles/UserFiles/File/noOutline.rar 本地下载 程序代码1: <script type="text/javascript" src="fix_eolas.js" defer="defer"></script> js的code: 程序代码// (c) David Grudl aka -dgx- // // more info: http://www.dgx.cz/knowhow/eolas-workaround/ var objects = document.getElementsByTagName("object"); for (var i=0; i<objects.length; i++) objects[i].outerHTML = objects[i].outerHTML; b. 在 <body> </body> 之間插入,要播放的 .swf 程序代码 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="300"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"> <!-- 這裡的 value 要改為您所要置放的 .swf --> <param name="movie" value="jjan_mv_1_21.swf" /> <param name="loop" value="true" /> <param name="menu" value="false" /> </object>
参考文献:
|


程序代码
程序代码
yeapple886
博客统计信息
热门文章
最新评论
友情链接