Einzelnen Beitrag anzeigen

golisan

Registriert seit: 17. Jan 2007
43 Beiträge
 
Delphi 2007 Professional
 
#2

Re: TWebBrowser - Sprung zu einer Textmarke funktioniert nic

  Alt 19. Jan 2007, 07:22
... inzwischen habe ich es selber heraus gefunden....

bei einem Klick auf einen Link, der auf eine Textmarke innerhalb des HTML-Dokumentes verweist, setzt sich die "Sprungmarke" aus URL + Textmarke zusammen.
Da ich die Seite ja nicht per navigate sondern per write befüllt habe, steht in WebBrowser.LocationURL "about:blank" drin.
Beim Klick auf einen Link wird dann "about:blank#textmarke" daraus und damit kann TWebBrowser nix anfangen ...
So kann man den "Sprung" selber durchführen

Delphi-Quellcode:
procedure TFormSrcView.WebBrowser1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
var
anchor : OleVariant;
myURL : widestring;
i : Integer;
begin
  myURL := StringReplace(URL, 'about:blank','',[rfIgnoreCase]); // Url bereinigen
  myURL := StringReplace(myURL, '#','',[rfIgnoreCase]);

  for I := 0 to WebBrowser1.OleObject.Document.anchors.Length - 1 do
  begin
    anchor := WebBrowser1.OleObject.Document.anchors.Item(I);
    if anchor.name = myUrl then
    begin
      anchor.scrollIntoView(true); // WebBrowser scrollen ...
      cancel := true;
      exit;
    end;

  end;

  cancel := true;


end;
bye
  Mit Zitat antworten Zitat