2016-06-09 1 views
2

Я хочу запустить javascript-код в TWebbrowser и получить его консольный вывод. Например, если я запускаю этот код в консоли:Как получить вывод консоли JS-скрипта в TWebbrowser?

var a = 2; var b = 3; var c = a +b ; console.log('The result is '+ c); 

Я получаю этот вывод на консоль:

The result is 5 

код я использую для запуска сценария JS с TWebBrowser заключается в следующем:

twebbrowser1.navigate('javascript:var a = 2; var b = 3; var c = a +b ; console.log('The result is '+ c);'); 

Это работает, но я не знаю, как получить выход на консоль. Есть ли способ сделать это?

Заранее благодарен!

+0

Что вы подразумеваете под «получить консольный вывод»? Вы хотите, чтобы TWebBrowser * отображал * консоль JS или вы хотите * захватить * (в коде Delphi), что выдает консольный скрипт? – MartynA

+1

В последнем случае вы даже не должны использовать TWebBrowser для запуска javascript вообще. Запустите javascript напрямую, например, с [Хост сценария Windows] (https://msdn.microsoft.com/en-us/library/t64z26x3.aspx) (интерфейс IActiveScript), 'cscript.exe' или другой скриптовый движок. Недопустимо использование * визуального * HTML-компонента для самостоятельной работы * визуального * скрипта. –

+0

@MartynA Как я уже сказал, я хотел бы получить консольный вывод, используя приложение Delphi. – delphirules

ответ

6

Согласно MSDN, похоже, что вашему приложению (Delphi) потребуется реализовать интерфейс IDeveloperConsoleMessageReceiver.

Затем вы можете подключить экземпляр объекта вашего IDeveloperConsoleMessageReceiver к текущему документу браузера. Запросите значение TWebBrowser.Document для своего интерфейса IOleCommandTarget, а затем вызовите его метод Exec() для выдачи команды IDM_ADDCONSOLEMESSAGERECEIVER.

Попробуйте, и если вы застряли, попробуйте еще раз спросить.

+0

Большое спасибо Реми! Я потерял счет о том, сколько раз вы помогли мне не только здесь, но и во многих других источниках, таких как форумы Embarcadero. Пожалуйста, примите мои теплые БЛАГОДАРИМ ВАС ОЧЕНЬ много для такой большой работы, которую вы предоставляете сообществу Delphi. Ты жжешь ! – delphirules

+1

Да, я обязан Реми и для редактирования моего ответа здесь (и для многих других вещей тоже!). – MartynA

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