通过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