gpt4 book ai didi

delphi - 使用 TWebBrowser 时查看 Web 控制台

转载 作者:行者123 更新时间:2023-12-03 20:46:16 24 4
gpt4 key购买 nike

我正在使用 TWebBrowser显示在 Vue 中创建的网页,但我目前无法调试页面功能在浏览器(IE 和 Chrome)中工作但在 TWebBrowser 中不起作用的情况.我正在寻找一种在显示 TWebBrowser 时从 Delphi 中访问 Web 控制台或开发工具的方法。这样我就可以确定究竟是什么阻止了页面的功能工作。
我试图实现 TDeveloperConsoleMessageReceiver使用 IDeveloperConsoleMessageReceiver 的类界面。此类是在 TWebBrowser 时创建的。被初始化。然后在 TWebBrowserDocumentComplete我实现了以下功能:

procedure TTTWebBrowser.WebBrowserDocumentCompleted(ASender: TObject; const pDisp: IDispatch; const URL: OleVariant);
var
Target : IOleCommandTarget;
Action : Cardinal;
Params : OleVariant;
const
IDM_ADDCONSOLEMESSAGERECEIVER = 3800;
CGID_MSHTML: TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}';
begin
CallUserDocumentCompletedEvent(pDisp, URL);
if Assigned(WebBrowser.Document) then begin
Target := IOleCommandTarget(WebBrowser.Document);
Action := IDM_ADDCONSOLEMESSAGERECEIVER;
Params := EmptyParam;
Target.Exec(@CGID_MSHTML, Action, OLECMDEXECOPT_DODEFAULT, IDeveloperConsoleMessageReceiver(DeveloperConsole), Params);
end;
end;
在哪里 DeveloperConsoleDeveloperConsoleMessageReceiver初始化时创建的类。运行上述函数时,我在 Exec 上遇到访问冲突。 .
如何正确使用 DeveloperConsoleMessageReceiver或者是否有其他方法来调试 TWebBrowser从德尔福内部?

最佳答案

我用 NavigateComplete2事件,它的工作原理。
这是我的代码:

procedure TMainForm.WBNavigateComplete2(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
const
CGID_MSHTML: TGUID = '{DE4BA900-59CA-11CF-9592-444553540000}';
IDM_ADDCONSOLEMESSAGERECEIVER = 3800;
var
vin, vout: OleVariant;
begin
if FDebugConsole then // Call it only once
Exit;
vout := Null;
vin := Self as IDeveloperConsoleMessageReceiver;
(WB.Document as IOleCommandTarget).Exec(@CGID_MSHTML, IDM_ADDCONSOLEMESSAGERECEIVER, OLECMDEXECOPT_DODEFAULT
,vin, vout);
FDebugConsole := True;
end;
您必须调用 IDM_ADDCONSOLEMESSAGERECEIVER只有一次,以后您可以导航到其他页面,并且控制台消息将继续到达。我的主要形式实现 IDeveloperConsoleMessageReceiver界面。

关于delphi - 使用 TWebBrowser 时查看 Web 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65431316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com