如何在 TWebbrowser 中获取 JS 脚本控制台输出?

How to get a JS script console output in TWebbrowser?

我想在 TWebbrowser 中 运行 一个 javascript 代码并获得它的控制台输出。例如,如果我 运行 控制台中的此代码:

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

我在控制台上得到了这个输出:

The result is 5

我用来 运行 带有 TWebbrowser 的 JS 脚本的代码是这样的 :

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

它可以工作,但我不知道如何获得控制台输出。有办法吗?

提前致谢!

根据 MSDN,您的 (Delphi) 应用似乎需要实现 IDeveloperConsoleMessageReceiver 接口。

然后您可以将 IDeveloperConsoleMessageReceiver 的对象实例连接到浏览器的当前文档。查询 TWebBrowser.Document 属性 的 IOleCommandTarget interface and then call its Exec() 方法以发出 IDM_ADDCONSOLEMESSAGERECEIVER 命令。

试试看,如果卡住了,请再试一次。