2013-05-29 1 views
0

Hy,Получить результат от функции JavaScript в C++

Я работаю над проектом, который должен вызывать из C++ пользовательскую функцию, выполненную в JavaScript. Я могу запустить функцию

Проект должен работать только на Windows, (на самом деле это служба Windows), так что это нормально, чтобы использовать интерфейсы IWebBrowser2 и IHTMLDocument2

Подпись функции является string function(string). Я могу запустить эту функцию в C++, основываясь на this tutorial (я использую интерфейс IWebBrowser2 и IHtmlDocument2), но я не могу получить вывод из этой функции JS на C++.

Есть ли какой-либо метод для получения результата от этой функции JS на C++, используя эти интерфейсы? (Или, возможно, другие)

Спасибо,

+2

Когда вы вызываете функцию через 'Invoke', возвращаемое значение помещается в' VARAINT'. Это 6-й параметр для вызова. –

+0

Вам нужно просто вызвать функцию javascript, определенную как текст, или функцию javascript в контексте веб-страницы? –

+0

@SimonMourier Мне нужно вызвать только функцию javascript, определенную как текст. – banuj

ответ

0

Я отвечу на свой вопрос, если кто-то будет иметь один и тот же вопрос:

Короткий ответ вы не можете получить вывод яваскрипта сценария используя эти интерфейсы. 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.

 Смежные вопросы

  • Нет связанных вопросов^_^