TWebBrowser 在导航本地文件后将 HTML 代码插入正文
TWebBrowesr Insert HTML code into body after navigate a local file
我在 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 添加文本,效果很好。
如何导航本地文件然后向正文添加一些文本(假设它是聊天应用程序)。
我发现解决方案取决于上面的@whosrdaddy 评论,但没有使用 OnDocumentComplete。
我应该等待浏览器完成 navigating/processing 它
procedure WaitComplete;
begin
with WebBrowser do
while Busy or (ReadyState <> READYSTATE_COMPLETE) do
begin
Vcl.Forms.Application.ProcessMessages;
end;
end;
WebBrowser.Navigate(f);
WaitComplete;
我在 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 添加文本,效果很好。
如何导航本地文件然后向正文添加一些文本(假设它是聊天应用程序)。
我发现解决方案取决于上面的@whosrdaddy 评论,但没有使用 OnDocumentComplete。
我应该等待浏览器完成 navigating/processing 它
procedure WaitComplete;
begin
with WebBrowser do
while Busy or (ReadyState <> READYSTATE_COMPLETE) do
begin
Vcl.Forms.Application.ProcessMessages;
end;
end;
WebBrowser.Navigate(f);
WaitComplete;