scansoft-空间关闭
![shockwave flash](/uploads/image/0809.jpg)
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
注意把代码里面的换成你自己文件的路径,615,310是宽和高,自己按照需要修改。
哈哈!这样就可以通过w3c的效验了,同时也解决了现在浏览器中需要点击激活flash的尴尬
(呵呵!这是通过欺骗浏览器起到的效果)。本人已经测试,完全可行。
目前首页以及信息大栏目页面都已经顺利通过验证,只是Html编辑器输入生成的正文部分代
码还不符合w3c的规范,还在努力处理中。查看效验结果,请点击页面下面的xhtml1.0链接。
发布评论