ActiveX控件未在IE6中运行

时间:2009-03-12 16:08:51

标签: activex internet-explorer-6

我正在尝试使用一些javascript与activex控件进行通信。当这工作并且JS可以获得控件状态时,我得到一个特定的消息。如果没有,我收到错误消息。

在IE7 / 8中,系统会提示您接受activex控件(通过警告栏),但在IE6中,js无法获得控件状态。

我还尝试使用外部文件中的document.write创建控件,以便在页面加载后立即运行。控件是不可见的,所以我不能仅仅通过查看页面来判断它是否被加载。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

可能是在IE7中启动的ActiveX控件激活机制,但我认为以后应该在Service Pack中将其删除。对于控件开发人员和网页作者来说,这是一个很大的痛苦。

本文提供了一些背景和建议:http://msdn.microsoft.com/en-us/library/ms537508.aspx

此处还有一些有用的信息:http://blogs.msdn.com/ie/archive/2007/11/08/ie-automatic-component-activation-changes-to-ie-activex-update.aspx

答案 1 :(得分:0)

在自动机械(或之前)被禁用后,在IE中激活控件,因为诉讼在HTML中放置了脚本标签,如下所示

<script src="control.js"></script>

然后在网站的根目录中创建一个control.js文件,如下所示: (你当然必须编辑你的控件的classid的脚本,它是parms - 但你明白了)

document.write('<OBJECT align=left classid="CLSID:8BD21D30-EC42-11CE-9E0D-00AA006002F3" id=Customer style="HEIGHT: 23px; text-align:left; LEFT: 0px; TOP: 100px; WIDTH: 160px" tabIndex=4 width=75 onchange="NewCustomer" VIEWASTEXT>');
document.write('<param name="VariousPropertyBits" value="746604571">');
document.write('<param name="BackColor" value="2147483653">');
document.write('<param name="ForeColor" value="2147483656">');
document.write('<param name="MaxLength" value="0">');
document.write('<param name="BorderStyle" value="0">');
document.write('<param name="ScrollBars" value="0">');
document.write('<param name="DisplayStyle" value="3">');
document.write('<param name="MousePointer" value="0">');
document.write('<param name="Size" value="4233;609">');
document.write('<param name="PasswordChar" value="0">');
document.write('<param name="ListWidth" value="0">');
document.write('<param name="BoundColumn" value="1">');
document.write('<param name="TextColumn" value="65535">');
document.write('<param name="ColumnCount" value="1">');
document.write('<param name="ListRows" value="8">');
document.write('<param name="cColumnInfo" value="0">');
document.write('<param name="MatchEntry" value="1">');
document.write('<param name="ListStyle" value="0">');
document.write('<param name="ShowDropButtonWhen" value="2">');
document.write('<param name="ShowListWhen" value="1">');
document.write('<param name="DropButtonStyle" value="1">');
document.write('<param name="MultiSelect" value="0">');
document.write('<param name="Value" value>');
document.write('<param name="Caption" value>');
document.write('<param name="PicturePosition" value="458753">');
document.write('<param name="BorderColor" value="2147483654">');
document.write('<param name="SpecialEffect" value="2">');
document.write('<param name="Accelerator" value="0">');
document.write('<param name="GroupName" value>');
document.write('<param name="FontName" value="Arial">');
document.write('<param name="FontEffects" value="1073741824">');
document.write('<param name="FontHeight" value="165">');
document.write('<param name="FontOffset" value="0">');
document.write('<param name="FontCharSet" value="0">');
document.write('<param name="FontPitchAndFamily" value="2">');
document.write('<param name="ParagraphAlign" value="1">');
document.write('<param name="FontWeight" value="400">');
document.write('<param name="autoStart" value="-1"></object>');

autoStart = -1是导致它自动运行的导入(一旦安装)。 您可能想要添加CODEPATH tpo指向control.CAB文件的对象以进行安装。 (在我的情况下我不需要这个)