【问题标题】:Javascript Refuses to Call ActiveX Method, Agrees to Call AnotherJavascript 拒绝调用 ActiveX 方法,同意调用另一个
【发布时间】:2010-03-04 06:59:55
【问题描述】:

我有一个扩展了一些功能的 ActiveX 对象。我有一个加载 ActiveX 对象并在 Javascript 中调用其方法的网页。 ActiveX 对象有两种方法;问题是 Javascript 可以成功调用其中一个,但无法调用另一个;引用 Object 不支持此属性或方法 这是无稽之谈,因为我制作了一个成功调用此其他方法的 VB6.0 应用程序,因此这两个函数确实正确扩展并执行了它们的工作。 p>

是的,Internet Explorer 安全区域已全部设置完毕,正如我在上面所写的,javascript 代码可以调用一种方法,但拒绝调用另一种方法。

知道为什么 Javascript 会成为主流吗?

【问题讨论】:

  • 您至少可以显示这些方法的签名。
  • 我不确定我理解你所说的签名是什么意思,但这里是函数的 IDL 文件声明:[propget][id(3), helpstring("method addh3h3")] HRESULT addh3h3 ([in] VARIANT x, [in] VARIANT y,[out,retval] VARIANT* z); [propget][id(5), helpstring("property ATR")] HRESULT ATR([out, retval] BSTR* pVal);第一个可以从 Javascript 调用,第二个失败。调用失败的javascript代码是: function GetATR() { var y = ""; y = actvx3obj.ATR();警报(y); }
  • 您尝试过 IE 非管理员控件吗?如果是,则可能是原因。

标签: asp.net javascript c++ html activex


【解决方案1】:

答案很简单。在 IDL 文件中,该函数被声明为一个属性 (propget),而不带任何输入参数。在 Javascript 代码中,我调用了 actvx3obj.ATR();实际上我应该调用actvx3obj.ATR;因为它是一个不带参数的属性获取方法。

我发布这个是希望有类似问题的人可能会偶然发现解决方案。

【讨论】:

    猜你喜欢
    • 2021-07-19
    • 2017-10-17
    • 2018-03-31
    • 2010-09-07
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多