您的位置主页 > 前端技术 > Javascript&js > 如何激活ActiveX控件 - 解决Windows XP SP2(KB912945) 出现的问题

如何激活ActiveX控件 - 解决Windows XP SP2(KB912945) 出现的问题

2010-01-15    文章来源:互联网    浏览次数:438

前一阵子在开发的过程中,遇到了一个问题,想必大家肯定遇到过或者看到过(我深信)。

现象:打开含有SVG图的页面时,SVG图周围会出现一个虚线框,鼠标放上去之后会显示(Click to activate and use this control. )的标签。 

起初以为是由于IE设定不妥当,才出现了这样的问题。但是回家上网打开IE时也出现了同样的现象,仔细一想肯定不是IE设定的原因,唯一能够联想到的就是Windows Update。

查了一下Windows Update的履历后,发现了一个可疑的SP2补丁(KB912945),

http://www.microsoft.com/downloads/details.aspx?FamilyID=999D37C3-4013-48DE-B950-EE01256AAA92&displaylang=zh-cn#Instructions

微软中文主页是这样描述这个补丁的。

本更新程序包括有关 Internet Explorer 对某些使用 Microsoft ActiveX 控件的网页的处理方式的微小改动。 某些网页将要求用户通过单击 Active X 控件或使用 TAB 键和 ENTER 键将其手动激活。 本更新程序包含以前发布的所有安全更新程序。安装本更新程序之后,可能需要重新启动计算机。

也就是说,装了这个补丁之后IE就要求用户手动激活ActiveX控件。这也就是产生虚线框和(Click to activate and use this control. )标签的原因。 

是否有什么规避的方法?经过一番调查在微软的主页上看到了以下文档。

http://www.microsoft.com/china/msdn/library/webservices/WebApp/activating_activex.mspx?mfr=true

具体说来,就是通过”外部加载交互控件”的方式来规避这个想象。也就是说诸如APPLET,EMBED,OBJECT的标签,不要直接定义在HTML页中,可以将这些标签定义到外部的JS文件里,随后在HTML页中加载该控件,从而达到”外部加载交互控件”的效果。

例如

 
  1. <script src="Embed.js"></script> 

Embed.js

 
  1. document.write("<embed src='01.wav' loop=false autostart=false name=bgss width=400 height=200 />");

这个<embed></embed><html></html>中分离了出来,被定义在Embed.js文件中。而HTML文件则通过引用的方式<script src="Embed.js"></script>来加载这个标签,从而达到了外部加载的目的。大家可以比较一下分离出来和未被分离出来是否是一个自动激活,而另一个则需要用户手动激活。

  • 上一篇:JS实现搜索关键字加亮效果
  • 下一篇:没有了
  • 文章评论(查看全部)

    验证码: 中评 好评 差评