解决页面中解决的“单击以激活并使用此控件”的问题

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

问题来源:
现在的Flash显示跟以前不同了,鼠标放上去会有一个虚线框,有提示文字说“单击以激活并使用此控件”,也就是说页面刚打开的时候,页面上的Flash是没有被激活的,需要用户确认,这时Flash可以正常播放动画但是如果里面有按钮什么的就不能点,用户确认激活后那些按钮才可以用。

其实这是你的系统在最近升级更新过了,并且安装了更新系统编号为KB912945http://support.microsoft.com/kb/912945)的补丁。

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

安装这个补丁以后,IE浏览器对ActiveX控件和Java程序的处理方式将有所改变,默认情况下不会主动激活,因此用户在访问Flash广告等网络内容时需要多点击一次鼠标,但非交互式控件不会改变,微软已经通知网站开发人员最好对他们的网页作出相应修改!
解决方案一:
通过调用外部js,将activex控件写入到页面中。
例如:a.html要加载一个b.swf的flash,需要另外使用一个c.js文件,在里面通过document.write/innerHTML/outerHTML方式,将带有b.swf的object标签填入到页面指定位置。
c.js中的函数:

解决方案二:(我解决该问题采用了这个方案)
创建一个JS文件,命名为c.js

function  insertFlash(elm, url, w, h) {
if  ( ! document.getElementById(elm))  return ;
var  str  =   '' ;
str 
+=   ' <object width=" ' +  w  + ' " height=" ' +  h  + ' " classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"> ' ;
str 
+=   ' <param name="movie" value=" ' +  url  + ' "> ' ;
str 
+=   ' <param name="wmode" value="opaque"> ' ;
str 
+=   ' <param name="quality" value="autohigh"> ' ;
str 
+=   ' <embed width=" ' +  w  + ' " height=" ' +  h  + ' " src=" ' +  url  + ' " quality="autohigh" wmode="opaque" type="application/x-shockwave-flash" plugspace="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed> ' ;
str 
+=   ' </object> ' ;
document.getElementById(elm).innerHTML 
=  str;
}

 

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

参数说明:
elm:需要插入flash的外层HTMLElement
url: flash的地址
w: flash宽
h: flash高

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

< script  type ="text/javascript"  src ="c.js" ></ script >
< div  id ="test" ></ div >
< script  type ="text/javascript" >
// <![CDATA[
insertFlash('test''b.swf'12085); //test是上面的DIV的ID名,后面跟着的是FLASH的路径以及宽跟高
//
 ]]>
</ script >  

 

// 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;
}

 

调用该JS文件

 

< script  src ="c.js"  type ="text/javascript" ></ script >

 

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

 

< script type = " text/javascript " >
AC_FL_RunContent( 
' codebase ' , ' http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 ' , ' width ' , ' ' , ' height ' , ' ' , ' src ' , ' snow ' , ' quality ' , ' high ' , ' pluginspage ' , ' http://www.macromedia.com/go/getflashplayer ' , ' wmode ' , ' transparent ' , ' movie ' , '' FLASH的路径和文件名不要加.swf这个扩展名 ' , ' menu ' , ' false '  ); //end AC code
</script>
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="宽" height="高">
<param name="movie" value="swf文件路径">
<param name="quality" value="high">
<param name="wmode" value="transparent">
<param value="false" name="menu" /> //屏蔽右键的代码,可去,可留
<embed src="swf文件路径" width="宽" height="高" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"></embed>
</object>
</noscript>

 

解决方案三:
直接从系统中删除相应的补丁,但针对性太强,只对个人的电脑用户,你的客户不懂这些就没办法了。

插件编号:KB912945,针对flash等控件的,可以在控制面板中卸载此补丁
现在(2006.8.11)后,微软已经将KB912945放在了KB918899里面了,将其删除或御载

 

使用的脚本是一个国外的人写的SwfObject.js

 

< script  type ="text/javascript"  src ="css/swfobject.js" ></ script >

 

在调用

 

< div  id ="flashcontent"  style ="font-size:small " >
      
< strong > &nbsp;&nbsp;&nbsp;&nbsp; 非常抱歉,您的浏览器不支持FLASH播放! </ strong >
       
< br >        
</ div >
< script  type ="text/javascript" >
// <![CDATA[
       var so = new SWFObject("images/logo.swf""logo""1024""110""6""#4479bd");
        
////参数意思: 地址,Flash 的 id(不是容器的 id),宽,高,版本需求,背景颜色
    so.write("flashcontent");
// ]]>
</ script >

 

 
宇树G1嵌入式软件架构及技术实现 该架构通过硬件加速(FPGA)+确定性调度(RTX5)的组合,在1ms控制周期内完成从传感器采集到43轴输出的全链路处理,相比波士顿动力系统缩短40%的着地稳定时间。,结合ARM Cortex-R5与FPGA的异构计算能力,实现43自由度1kHz实时控制。 阅读详情

相关推荐

1G/2.5G Ethernet PCS/PMA or SGMII

SGMII即Serial GMII,串行GMII,收发各一对差分信号线,时钟频率625MHz,在时钟信号的上升沿和下降沿均采样,所以总的数据速率为1.25Gbps=625Mbps*2。参考时钟RX_CLK由PHY提供,是可选的,主要用于MAC侧没有时钟的情况,一般情况下,RX_CLK不使用。收发都可以从数据中恢复出时钟。在TXD发送的串行数据中,每8比特数据会插入TX_EN/TX_ER 两比特控制信息,同样,在RXD接收数据中,每8比特数据会插入RX_DV/RX_ER 两比特控制信息。

sqzjiayou的博客 1万+

Flash中“单击激活使用控件

解决页面解决的“单击激活使用控件”的问题作者:林小志 日期:2006-11-17http://www.linxz.cn/blog2/article.asp?id=40 问题来源:现在的Flash显示跟以前不同了,鼠标放上去会有一个虚线框,有提示文字说“单击激活使用控件”,也就是说页面刚打开的时候,页面上的Flash是没有被激活的,需要用户确认,这时Flash可以正常播放动

greenerycn的专栏 2919

西门子1200与FANUC机器人Profinet通讯

近期在做发那科FANUC的通讯,会吧CC-LINK、Profibus-DP、Profinet I/O、DeviceNet、EtherNet/IP这些常用通讯做成文档发上来,大家喜欢的话可以关注 注:做对应的通讯,在机器人控制柜都需要安装对应的板卡以及软件功能 PLC项目已经归档,只需要恢复就可以看到。对应Profinet通讯的GSD文件也都在博文最后有连接 机器人柜子:R-30IB Mate 机器人主体:M-10IA 12 一、硬件介绍 机器人Profinet I/O通讯板卡:...

七兔自习室 2万+

windows系统点击激活没反应

根据这个论据,为了撰写关于此类技术话题的文章时避免版权纠纷,可以利用像小发猫伪原创、小狗伪原创这样的工具来辅助创作,同时也可以借助PaperBERT等基于人工智能技术的文字生成模型提高工作效率。不过需要注意的是,无论采用何种工具,最终内容的真实性与准确性仍需作者自行核实。首先需要了解的是,“点击激活”通常指的是通过Windows设置中的“更新和安全”>“激活”选项来尝试在线激活Windows的过程。假如经过前面所有的努力仍然无法成功激活你的Windows副本,最后的办法就是直接向官方寻求帮助了。

x3088的博客 8315

激活 ActiveX 控件

激活 ActiveX 控件发布日期: 2007-05-25 | 更新日期: 2007-05-25用户无法直接与 APPLET、EMBED 或 OBJECT 元素加载的 Microsoft ActiveX 控件交互。 用户激活这些控件的用户界面后才可以与这些控件交互。 本主题介绍了 Microsoft Internet Explorer 如何处理 ActiveX 控件,显示如何加载 Acti

zhangyu028的专栏 3995

单击激活使用控件”的解决方案

    最近因为客户反馈项目中的Applet小应用程序在加载完后必需要通过鼠标或按键来激活所带来不便,究其原因发现是IE浏览器在加载Flash或Applet控件后,默认在控件上出现一个虚线框,将鼠标放到虚线框上出现“单击激活使用控件”的提示。    在网上搜了一下,原来是微软为了避免与Eolas公司和加利福尼亚大学之间的专利侵权纠纷,而发布的一个IE非安全更新,也就是说微软发布了不是解决BU

潇湘振宇 1759

解决单击激活使用控件”的办法(解决flash)(代码全部贴出)

  最近在浏览网站的时候发现一个问题,当你将鼠标移动到FALSH等类型的控件上之后,就会出现“单击激活使用控件”的提示,感觉非常讨厌。每次刷新都需要先点击进行激活。后来在网上查找相关内容,终于找到原因,今天整理出来和大家分享,希望对你有所帮助。  演示地址:http://www.pzwx.cn/flash/index.htm        也欢迎来我小站看看   http://www.p

PZHan的专栏 3027

解决网页中Flash单击激活使用控件”的办法

http://dl2.csdn.net/down4/20070725/25101047883.rar在浏览网站的时候发现一个问题,当你将鼠标移动到FALSH等类型的控件上之后,就会出现“单击激活使用控件”的提示,感觉非常讨厌。每次刷新都需要先点击进行激活。后来在网上查找相关内容,终于找到原因,今天整理出来和大家分享,希望对你有所帮助。    因为现在Flash的显示方式和以前不同了,将鼠标放

onsrs的专栏 1387

解决IE7中flash单击激活使用控件”的办法(解决flash

 最近在浏览网站的时候发现一个问题,当你将鼠标移动到FALSH等类型的控件上之后,就会出现“单击激活使用控件”的提示,感觉非常讨厌。每次刷新都需要先点击进行激活。后来在网上查找相关内容,终于找到原因,今天整理出来和大家分享,希望对你有所帮助。演示地址:http://www.gdxsqqw.com因为现在Flash的显示方式和以前不同了,将鼠标放到FLASH控件上面就会有一个虚线

MPU的专栏 3262

解决Flash单击激活使用控件问题

 现在IE为增强安全性,打了一个让人感觉很“烦”的补丁,在使用某些控件(插件)时,有“单击激活使用控件”提示。也就是要先单击一下才能使用控件。这对作用Flash做导航的站点是一个比较郁闷的问题。总要先单击一下才能去点按钮…… 有方案提出用删除相关补丁的方法,这个方法对网页设计者来说当然是简单,可是对IE用户来说却很麻烦,删半天删不掉不说有时还把系统给搞坏了。 以下是在设计者的角度解决这个问

haonanhai1688的专栏 1478

IE"单击激活控件"网站代码解决

<!--google_ad_client = "pub-4490194096475053";/* 内容页,300x250,第一屏 */google_ad_slot = "3685991503";google_ad_width = 300;google_ad_height = 250;//--><script type="text/javascript"src="

管子(zero)的杂乱空间 1643

网页中Flash出现“单击激活使用控件”的解决方法

在网页中插入的Flash,在进行页面浏览时会有讨人嫌的提示“单击激活使用控件”,Flash文件的周围具有边框显示,必须单击Flash才能消除该提示,着实很麻烦。平时一直没在意,最近感觉到看着页面中的Flash比较难过,随即搜索些解决方案整理下来:首先了解下含有Flash内容的网页在IE浏览器下为什么会出现“单击激活使用控件”?微软为了避免与eolas公司和加利福尼亚大学之间的专利侵权纠纷

缘来是我 2065

单击激活使用控件正确解决方法

网页的FLASH都会出现“点击激活使用控件”在网上到处是这种做法:狗屁不通,和正常插入flash没什么两样解决方法如下(适用网页制作者): 程序代码 写了一个js文

派的无理性 3268

"单击激活使用控件"解决方法

 /**************************************************  *Author:Java619  *Time:2006-07    **************************************************/ window xp IE中为了安全,当页面中有媒体播放器或Flash总是会提示"单击激活使用该控

bingby的专栏 752

关于“单击此处以激活控件

自从使用了Windows Vista上的IE7来浏览网站的时候(其实从IE6 SP2开始),经常会发现一些视频或者Flash网站出现了“单击此处以激活控件”的现象。现象就是在某些视频播放控件(Windows Media Player或者Real Player),或者是Flash动画,或者是其它有可视化界面的ActiveX控件的周围有一个虚线框,当鼠标移上去后,会显示“单击此处以激活控件”,只有当你

TonyWang的专栏 1309

解决单击激活使用控件”的办法(解决flash

    最近在浏览网站的时候发现一个问题,当你将鼠标移动到FALSH等类型的控件上之后,就会出现“单击激活使用控件”的提示,感觉非常讨厌。每次刷新都需要先点击进行激活。后来在网上查找相关内容,终于找到原因,今天整理出来和大家分享,希望对你有所帮助。  演示地址:http://www.gdxsqqw.com  因为现在Flash的显示方式和以前不同了,将鼠标放到FLASH控件上面就会

郑成的博客 1248

单击激活使用控件

最近一阶段,会有许多人像我一样,在打开网页将鼠标挪到FALSH等类的控件上后,会出现“单击激活使用控件”的提示,好像每次刷新都需要激活。真是令人头痛,为此,在百度上搜索到了相关的解决办法,亲自试验成功.在这里给没有找到解决方法的朋友们做个介绍.其实发生这种现象的原因是你的系统更新后安装了更新系统编号为KB912945的补丁。这是微软为了避免与Eolas公司和加利福尼亚大...

weixin_33893473的博客 129
上一篇: 终于搬完了
下一篇: AJAX本质
raekwon
博客等级 码龄20年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值