twidbrowser에서 웹 페이지로드 속도를 높이려면 tidhttp 컨트롤을 사용하고 있습니다. URL을 탐색하는 속도가 느려서 왜 내가 그것을 사용하지 않는지 (WebBrowser1.Navigate('some_url_here')
). 여기에 내가 그것을 할 방법은 다음과 같습니다 Twebbrowser에서 Tidhttp 사용
procedure TForm1.Button2Click(Sender: TObject);
procedure LoadHtmlIntoBrowser(var WB: TweBbrowser; const HTMLString: string);
var
v: OleVariant;
HTMLDocument: IHTMLDocument2;
begin
WB.Navigate('about:blank');
while WB.ReadyState < READYSTATE_INTERACTIVE do
forms.Application.ProcessMessages;
if Assigned(WB.Document) then
begin
HTMLDocument := WB.Document as IHTMLDocument2;
v := VarArrayCreate([0, 0], varVariant);
v[0] := HTMLString;
HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
HTMLDocument.Close;
end;
forms.Application.ProcessMessages;
end;
var
str:string;
begin
str:=idhttp1.Get('http://localhost/myhome.html');
LoadHtmlIntoBrowser(WebBrowser1,str);
end;
내가 다음 WebBrowser를 직접 해당 문자열을 쓰기 문자열에 HTML 콘텐츠를 얻을 수있는
idHTTP
를 사용합니다. 로컬 웹 서버 설정 (XAMPP)이 있습니다. 내가 가지고있는 문제는 html 콘텐츠가 브라우저에 쓰여지고 표시되는 링크를 클릭하면 아무 것도 보이지 않습니다. 즉, 맨 위에 "twopage.html"이있는 빈 페이지가 표시됩니다. 내가 오른쪽 클릭하고 "소스보기"를하면 이상한 페이지의 실제 HTML이 아닌
"<html>twopage.html</html>"
이됩니다.
은 "myhome.html"파일은이를 가질 수 있도록 당신은 웹 브라우저에로드하기 전에 HTML로 <base>
태그를 삽입해야
<html>
<head></head>
<body><h1>My home</h1><a href="twopage.html"></a></body>
</html>
The other webpage, "twopage.html" contains
<html>
<head></head>
<body><h1>Another Webpage</h1></body>
</html>
웹 브라우저에는 상대 링크를 올바르게 구성하기위한 "기본 URL"이 없으므로 실제로 'http : // somewhere'로 이동할 때 정상적으로 수행됩니다. 나는 당신이 그 "기본 URL"이 무엇인지 알 수는 없지만 절대 링크를 포함하도록 "myhome.html"파일을 변경할 수 있는지는 모르겠다. 예를 들어, '을 클릭하면 설정에 적용됩니다. 다른 한편으로는, 이것이 어떻게 중요한 페이지에서 페이지를로드하는 시간을 향상시킬 수 있는지, 그리고 CSS, 이미지 및 이와 유사한 관련 리소스가 포함 된 복잡한 페이지에서 작동하는지 잘 모르겠습니다. – jachguate
나는 @jachguate에 동의한다. [아마도 어쩌면 불가능할 것이다.] (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b98fd2b3-72d5-4aab-83d3-40feb01bacef) 원하는 위치로의 적어도 하나의 실제 네비게이션. – TLama
링크를 절대로 변경하고 있습니다. 이것은 문제를 해결하지는 않지만 문제를 해결하는 것입니다. 이것은 현재 할 것입니다. 감사. – megatr0n