自从微软对IE6的ActiveX更新后,每次用IE打开带有ActiveX控件的页面时,必须要进行控件激活操作(点击相关控件),否则该控件将无法正常工作。如果在页面上使用ActiveX控件不多的话,每次多点一下也就算了,不过一旦要频繁操作或者控件很多,每次要做这个重复劳动时,客户肯定会疯掉了。MSDN提供了相应的解决办法,可以不需要手工激活,回到以前一样的操作。下面三种办法,关键是把传统页面和控件输出进行分离,技术核心是DHTML和脚本。

方法一(入门篇,解决问题即可):
自动激活你的ActiveX控件<!-- ActiveX.html -->
自动激活你的ActiveX控件
<html>
自动激活你的ActiveX控件 
<body leftmargin=0 topmargin=0 scroll=no>
自动激活你的ActiveX控件   
<script src="docwrite.js"></script>
自动激活你的ActiveX控件 
</body>
自动激活你的ActiveX控件
</html>
自动激活你的ActiveX控件

自动激活你的ActiveX控件// docwrite.js
自动激活你的ActiveX控件
document.write('<object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6">');
自动激活你的ActiveX控件document.write('
<param name="URL" value="example.wmv">');
自动激活你的ActiveX控件document.write('
<param name="autoStart" value="-1"></object>');


方法二(专业篇):
自动激活你的ActiveX控件<!-- ActiveX.html -->
自动激活你的ActiveX控件
<html>
自动激活你的ActiveX控件 
<body> 
自动激活你的ActiveX控件   
<div id="DivID">
自动激活你的ActiveX控件     
<script src="createElementExplicit.js"></script>
自动激活你的ActiveX控件 
</body>
自动激活你的ActiveX控件
</html>

自动激活你的ActiveX控件// createElementExplicit.js
自动激活你的ActiveX控件
var myObject = document.createElement('object');
自动激活你的ActiveX控件DivID.appendChild(myObject);
自动激活你的ActiveX控件myObject.width 
= "200";
自动激活你的ActiveX控件myObject.height 
= "100";
自动激活你的ActiveX控件myObject.classid
= "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"
自动激活你的ActiveX控件myObject.URL 
= "example.wmv";
自动激活你的ActiveX控件myObject.uiMode 
= "none" ;
自动激活你的ActiveX控件


方法三(终极篇,适合批量更新):
自动激活你的ActiveX控件<!-- ActiveX.html -->
自动激活你的ActiveX控件
<html>
自动激活你的ActiveX控件
<head>
自动激活你的ActiveX控件  
<script src="external_script.js" language="JScript"></script>
自动激活你的ActiveX控件
</head>
自动激活你的ActiveX控件
自动激活你的ActiveX控件
<body>
自动激活你的ActiveX控件  
<div id="EXAMPLE_DIV_ID">
自动激活你的ActiveX控件     This text will be replaced by the control
自动激活你的ActiveX控件  
</div>

自动激活你的ActiveX控件// external_script.js
自动激活你的ActiveX控件
function CreateControl(DivID, CLSID, ObjectID,
自动激活你的ActiveX控件                      WIDTH, HEIGHT, URL, AUTOSTART)
 

注:这篇文章第一次发布于http://chagel.com/blog/read.php?12

相关文章: