编程语言
首页 > 编程语言> > 通过COM接口调用JavaScript方法

通过COM接口调用JavaScript方法

作者:互联网

我正在做一个与Matlab和Google Earth插件接口的项目.

我的想法是使用COM接口,其中MATLAB作为COM-Client,Internet Explorer 9中的Google Earth插件作为COM-Sever.

但是直到现在,我仍然不知道如何从MATLAB调用JavaScript方法,以便可以在Internet Explorer中更新Google Earth的视图.

是否可以通过COM调用JavaScript方法?

我的第二个想法是建立一个基于InternetExplorer的自定义Web浏览器,然后嵌入自定义COM方法和属性,以便它可以与Google Earth一起从外部应用程序调用.

任何帮助将不胜感激.

问候,

解决方法:

似乎唯一受支持的Google Earth API是JavaScript API.因此,您为此嵌入Internet Explorer的方法听起来很合理.

我对MATLAB的结局不是很熟悉,但是假设您可以嵌入Web浏览器控件,则应该可以开始调用脚本了.

在最低级别,IE Web浏览器实现了IWebBrowser2接口.此接口公开Document属性,该属性返回IHTMLDocument2接口.调用IHTMLDocument2 :: parentWindow以获取IHTMLWindow2接口.

一旦有了IHTMLWindow2,据我看,您有两个选择.您的脚本可以调用IHTMLWindow2 :: execScript.或者,您的顶级JavaScript函数应该通过继承的IDispatch成为IHTMLWindow2接口上的方法可用:尤其在需要返回值时很有用.

一些使用execScript的Delphi代码:http://www.delphidabbler.com/articles?article=21

一些直接使用IDispatch的.NET Framework代码(请参见注释掉的更复杂的代码示例):http://www.west-wind.com/weblog/posts/2008/Sep/27/Calling-JavaScript-functions-in-the-Web-Browser-Control

长话短说,基本上,您需要这样做:

myWebBrowser.Document.parentWindow.MyJavaScriptFunction()

或这个:

myWebBrowser.Document.parentWindow.execScript(“ MyJavaScriptFunction();”,“ JavaScript”)

标签:google-earth,com,activex,google-earth-plugin,javascript
来源: https://codeday.me/bug/20191208/2091013.html