2013-05-29 45 views
0

海兰,获取从JavaScript函数输出在C++

我在必须从C++在JavaScript中做了一个自定义函数调用一个项目。我能够运行功能

项目应该只能在Windows上运行(实际上它是一个Windows服务),所以它是确定使用接口的IWebBrowser2和的IHTMLDocument2

函数的签名是string function(string)。我可以在C++中运行该函数,基于this tutorial(我使用IWebBrowser2和IHtmlDocument2接口),但我无法从C++中获取该JS函数的输出。

是否有任何方法从C++中使用这些接口返回该JS函数的输出? (或者其他)

谢谢

+2

当您通过'Invoke'调用函数时,返回值放在'VARAINT'中。这是调用的第6个参数。 –

+0

您是否需要在网页上下文中调用定义为文本或JavaScript函数的JavaScript函数? –

+0

@SimonMourier我只需要调用一个定义为文本的javascript函数。 – banuj

回答

0

我会回答我自己的问题,如果有人有相同的问题:

简短的回答是,你不能获得的javascript脚本输出使用这些接口。 IWebBrowser2和IHtmlDocument运行在基于IE的上下文中,因此无法获取运行脚本的输出。

此问题的解决方案是:

如果您打算在应用程序中使用V8,调用函数的基本例子在提供Calling a v8 javascript function from c++ with an argument(但是,请注意错误放置的Dispose()函数)

如果您打算使用Active Script接口,基本示例提供在Run JavaScript function from C++ without MFC。这是一个很有用的例子,展示了如何运行JavaScript函数。