2013-03-15 1 views
5

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> 
+3

웹 브라우저에는 상대 링크를 올바르게 구성하기위한 "기본 URL"이 없으므로 실제로 'http : // somewhere'로 이동할 때 정상적으로 수행됩니다. 나는 당신이 그 "기본 URL"이 무엇인지 알 수는 없지만 절대 링크를 포함하도록 "myhome.html"파일을 변경할 수 있는지는 모르겠다. 예를 들어, '을 클릭하면 설정에 적용됩니다. 다른 한편으로는, 이것이 어떻게 중요한 페이지에서 페이지를로드하는 시간을 향상시킬 수 있는지, 그리고 CSS, 이미지 및 이와 유사한 관련 리소스가 포함 된 복잡한 페이지에서 작동하는지 잘 모르겠습니다. – jachguate

+0

나는 @jachguate에 동의한다. [아마도 어쩌면 불가능할 것이다.] (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b98fd2b3-72d5-4aab-83d3-40feb01bacef) 원하는 위치로의 적어도 하나의 실제 네비게이션. – TLama

+0

링크를 절대로 변경하고 있습니다. 이것은 문제를 해결하지는 않지만 문제를 해결하는 것입니다. 이것은 현재 할 것입니다. 감사. – megatr0n

답변

7

포함 상대 URL을 확인할 때 사용할 수있는 기본 URL입니다.

+0

위대한 작품. 레미, 나는 또한 너를 "공중에서 벗어난"문제에 대해 토론하고 싶다. – megatr0n

관련 문제