scansoft-空间关闭

shockwave flash
2023年3月31日发(作者:win7旗舰版64位系统)

解决页面中Flash虚框问题(更新)

注意:屏蔽那个虚框最好的办法也是最简单飞方法,土豆丫头好久才挖出来滴,强力推荐

问题来源:

现在的Flash显示跟以前不同了,鼠标放上去会有一个虚线框,有提示文字说“单击以激活并

使用此控件”,也就是说页面刚打开的时候,页面上的Flash是没有被激活的,需要用户确认,

这时Flash可以正常播放动画但是如果里面有按钮什么的就不能点,用户确认激活后那些按钮

才可以用。

其实这是你的系统在最近升级更新过了,并且安装了更新系统编号为KB912945

(/kb/912945)的补丁。

这是微软为了避免与Eolas公司和加利福尼亚大学之间的专利侵权纠纷,而发布的一个IE非安

全更新,这不是什么BUG。

安装这个补丁以后,IE浏览器对ActiveX控件和Java程序的处理方式将有所改变,默认情况下不

会主动激活,因此用户在访问Flash广告等网络内容时需要多点击一次鼠标,但非交互式控件不

会改变,微软已经通知网站开发人员最好对他们的网页作出相应修改!

解决方案一:

通过调用外部js,将activex控件写入到页面中。

例如:要加载一个的flash,需要另外使用一个文件,在里面通过

/innerHTML/outerHTML方式,将带有的object标签填入到页面指定位置。

中的函数:

Copycode

functioninsertFlash(elm,url,w,h){

if(!mentById(elm))return;

varstr='';

str+='

classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"

codebase="[url]/pub/shockwave/cabs/flash/#version=7

[/url],0,0,0">';

str+='';

str+='';

str+='';

str+='

wmode="opaque"type="application/x-shockwave-flash"

plugspace="[url]/shockwave/download/?P1_Prod_Version=Sh

ockwaveFlash[/url]">';

str+='';

mentById(elm).innerHTML=str;

}

这是一个非常简单的函数,大家在使用的时候可以根据自己的需求,作相应修改。比如给object

增加一些参数等等。

参数说明:

elm:需要插入flash的外层HTMLElement

url:flash的地址

w:flash宽

h:flash高

使用方法:在页面中使用以下代码

//

insertFlash('test','',120,85);//test是上面的DIV的ID名,后面跟着的是FLASH的路径以

及宽跟高

//]]>

解决方案二:

创建一个JS文件,命名为

[code]//v1.0

//Copyright2006AdobeSystems,htsreserved.

functionAC_AddExtension(src,ext)

{

if(f('?')!=-1)

e(/?/,ext+'?');

else

returnsrc+ext;

}

functionAC_Generateobj(objAttrs,params,embedAttrs)

{

varstr='

for(variinobjAttrs)

str+=i+'="'+objAttrs[i]+'"';

str+='>';

for(variinparams)

str+='';

str+='

for(variinembedAttrs)

str+=i+'="'+embedAttrs[i]+'"';

str+='>';

(str);

}

functionAC_FL_RunContent(){

varret=

AC_GetArgs

(arguments,".swf","movie","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"

,"application/x-shockwave-flash"

);

AC_Generateobj(rs,,ttrs);

}

functionAC_SW_RunContent(){

varret=

AC_GetArgs

(arguments,".dcr","src","clsid:166B1BCA-3F9C-11CF-80000"

,null

);

AC_Generateobj(rs,,ttrs);

}

functionAC_GetArgs(args,ext,srcParamName,classid,mimeType){

varret=newObject();

ttrs=newObject();

=newObject();

rs=newObject();

for(vari=0;i<;i=i+2){

varcurrArg=args[i].toLowerCase();

switch(currArg){

case"classid":

break;

case"pluginspage":

ttrs[args[i]]=args[i+1];

break;

case"src":

case"movie":

args[i+1]=AC_AddExtension(args[i+1],ext);

ttrs["src"]=args[i+1];

[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":

rs[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":

ttrs[args[i]]=rs[args[i]]=args[i+1];

break;

default:

ttrs[args[i]]=[args[i]]=args[i+1];

}

}

rs["classid"]=classid;

if(mimeType)ttrs["type"]=mimeType;

returnret;

}

调用该JS文件

接着就是在需要放置FLASH的地方加入以下代码,注意其中的中文内容提示

Copycode

AC_FL_RunContent('codebase','[url]/pub/shockwave/cabs/flash/s

#version=6[/url],0,29,0','width','宽','height','高

','src','snow','quality','high','pluginspage','[url]/go/getflashplayer[/url]','w

mode','transparent','movie',''FLASH的路径和文件名不要加.swf这个扩展名','menu','false');//end

ACcode

codebase="[url]/pub/shockwave/cabs/flash/#version=6

[/url],0,29,0"width="宽"height="高">

//屏蔽右键的代码,可去,可留

pluginspage="[url]/go/getflashplayer[/url]"

type="application/x-shockwave-flash"wmode="transparent">

解决方案三:

直接从系统中删除相应的补丁,但针对性太强,只对个人的电脑用户,你的客户不懂这些就

没办法了。

插件编号:KB912945,针对flash等控件的,可以在控制面板中卸载此补丁

现在(2006.8.11)后,微软已经将KB912945放在了KB918899里面了,将其删除或御载

微软XP升级出现的bug,就是对于使用传统网页制作模式插入页面的flash无法正常浏览,页

面打开的时候flash周围是一个虚线框,需要点击一下才能正常浏览,这样的问题真是难倒了

我了,我和客户一起想了很多办法,也在网上查了很多资料.最后在群里问了位高手才得以解决。

这里表示一下感谢!

在制作过程中通过国外一些优秀网站找到了解决flash调用符合标准的方法。

首先建立一个js文件,内容为:

Copycode

functioni(ur,w,h){

('

codebase="[url]/pub/shockwave/cabs/flash/#version=6

[/url],0,29,0"width="'+w+'"height="'+h+'">');

('');

('');

('');

('');

('

pluginspage="[url]/go/getflashplayer[/url]"

type="application/x-shockwave-flash"width="'+w+'"height="'+h+'">');

('');

}

ur是文件路径,w,h为flash文件尺寸,wmode为设置flash背景为透明,menu为控制flash

右键菜单,js里面这些参数不需要修改。

页面调用部份代码:

js调用:

Copycode

在放flash的位置写的代码如下:

Copycode

i('','615','310');

注意把代码里面的换成你自己文件的路径,615,310是宽和高,自己按照需要修改。

哈哈!这样就可以通过w3c的效验了,同时也解决了现在浏览器中需要点击激活flash的尴尬

(呵呵!这是通过欺骗浏览器起到的效果)。本人已经测试,完全可行。

目前首页以及信息大栏目页面都已经顺利通过验证,只是Html编辑器输入生成的正文部分代

码还不符合w3c的规范,还在努力处理中。查看效验结果,请点击页面下面的xhtml1.0链接。