TWebBrowser导航本地文件后将HTML代码插入到正文中

问题描述 投票:0回答:1

我在Delphi 10.x中使用TWebBrowser,我想导航到像index.html这样的本地文件,它将加载一些html / js / css,它正在工作并成功加载。现在我想在主体上添加一些html文本,但它不起作用,没有任何反应(没有引发错误)。

//Navigate to local file
   WebBrowser.Navigate(f);
//Writing a string to body
   with WebBrowser.Document as IHTMLDocument2 do
   begin
      WebBody := body;
      WebBody.insertAdjacentHTML('BeforeEnd', MyHTML);
   end;

如果我不导航到本地文件但是将整个HTML写为字符串,

    Navigate('about:blank', '', '', '', 'X-UA-Compatible: IE=edge,chrome=1');
   ...//write a initial html like above

然后通过WebBody.insertAdjacentHTML添加文本,它工作正常。

如何导航本地文件然后将一些文本添加到正文(假设它是聊天应用程序)。

delphi webbrowser-control twebbrowser
1个回答
0
投票

我发现解决方案依赖于上面的@whosrdaddy注释但不使用OnDocumentComplete。

我应该等待浏览器完成导航/处理它

procedure WaitComplete; 
begin
    with WebBrowser do
      while Busy or (ReadyState <> READYSTATE_COMPLETE) do
      begin
        Vcl.Forms.Application.ProcessMessages;
      end;
end;

WebBrowser.Navigate(f);
WaitComplete;

© www.soinside.com 2019 - 2024. All rights reserved.