【问题标题】:ActiveX Control not running in IE6ActiveX 控件未在 IE6 中运行
【发布时间】:2009-03-13 00:37:04
【问题描述】:

我正在尝试获取一些 javascript 来与 activex 控件对话。当这有效并且 JS 可以获得控件状态时,我会收到一条消息。如果没有,我会收到一条错误消息。

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

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

感谢您的帮助。

【问题讨论】:

    标签: activex internet-explorer-6


    【解决方案1】:

    这可能是在 IE7 中启动的 ActiveX 控件激活机制,但我认为应该稍后在服务包中删除。这是控件开发人员和网页作者的主要痛苦。

    本文给出了一些背景和建议: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

    【讨论】:

    • 我将此标记为正确答案,因为这一切都是正确的,并且确实会让人绊倒,但事实证明,微软为我在安全更新中使用的 activex 控件添加了一个 killbit,这是停止控件运行。
    【解决方案2】:

    在自动机制被禁用后(或之前)因诉讼而在 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 是让它自动运行的导入项(一旦安装)。 您可能还想为指向 control.CAB 文件的对象添加一个 CODEPATH 以进行安装。 (在我的情况下我不需要这个)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多