从 javascript 到 activex 对象的关联数组

Posted

技术标签:

【中文标题】从 javascript 到 activex 对象的关联数组【英文标题】:associative array from javascript to activex object 【发布时间】:2011-03-27 20:38:16 【问题描述】:

我需要将一个关联数组从 javascript 传递到 IE6+ 中的 C++ activex 控件。为如此标准的东西编写自己的类型似乎很可惜。它不必与原生 JS 对象一起使用,如果需要,我可以使用自定义关联数组类型。

我已经在谷歌上搜索了几天,关于这个主题的信息并不多。 COM 和 ATL 必须已经有了这个,不是吗?

【问题讨论】:

【参考方案1】:

Eric Lippert 的 post 可能会阐明如何从 C++ 中完成它。看看他关于 Javascript 数组是 Dispatch 对象的 cmets。因此,您可以获得 DISPID 并在每个上调用 Invoke。另一种选择是使用VBArray(和一点VBScript)将Javascript数组转换为SafeArray,或者你可以只使用Scripting.Dictionary COM对象,它相当于一个关联数组。下面是一些资源。

http://blogs.msdn.com/b/david.wang/archive/2006/07/04/howto-convert-between-jscript-array-and-vb-safe-array.aspx

http://www.java2s.com/Tutorial/JavaScript/0600__MS-JScript/DictionaryKeys.htm

【讨论】:

以上是关于从 javascript 到 activex 对象的关联数组的主要内容,如果未能解决你的问题,请参考以下文章

Javascript/Excel ActiveX 对象。查找完全匹配

使用 Javascript ActiveX 对象触发 C# dll

ActiveX 多线程调用 javascript 回调例程中的问题

在 IE 中轮询的好的 setTimeout 间隔是多少?

Internet Explorer 9/JavaScript:禁用 ActiveX 的确认警报/弹出窗口 [关闭]

将 activeX 对象投射到我的对象上的问题