![]() |
TWebbrowser und auf Klick auf einen Link reagieren
Hallo zusammen,
wenn ich eine Seite im TWebbrowser lade und darauf ein Linke mit "Rel", "Rev", oder "alt" ist, wie kann ich darauf zugreifen? Ich habs im OnBeforeNavigate probiert, aber in den OleVariants steht nichts drin. Kann mir einer von euch helfen? MfG :angel: |
Re: TWebbrowser und auf Klick auf einen Link reagieren
Habs jetzt so gelöst:
Delphi-Quellcode:
Das Leben kann sooo einfach sein....
procedure TtfBenutzer.WebBrowser1BeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); begin ShowMessage(Copy(URL,8,Length(URL)-8)); Cancel:=True; end; procedure TtfBenutzer.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('Test'); end;
Delphi-Quellcode:
Das ist übrigens weil der TWebbrowser bei mir automatisch 'http://Test/' daraus macht
Copy(URL,8,Length(URL)-8);
So wird der Link nur abgefangen und nicht ausgelöst. Aber wie ich an das alt tag komme weis ich trotzdem nicht... :gruebel: |
Re: TWebbrowser und auf Klick auf einen Link reagieren
Hallo Martin,
ich würde dir helfen, wenn ich dein Problem verstehen könnte. Hier verlierst du ein Byte:
Delphi-Quellcode:
Die zweite 8 muss eine 7 sein.
Copy(URL,8,Length(URL)-8);
Grüße vom marabu |
Re: TWebbrowser und auf Klick auf einen Link reagieren
nö muss nicht:
http:// sind 7 / am Ende ist 1.. macht insgesamt 8 Ich bastle eine Karte mit eine HTML Imagemap und will auf die Klicks auf die einzelnen Stellen reagieren, ohne jedoch eine Seite aufzurufen, sondern den Wert den das Feld hat auszuwerten. Also mache ich das jetzt so, das ich als "href" den Wert angebe und den dann aus der URL extrahiere. |
Re: TWebbrowser und auf Klick auf einen Link reagieren
Du verlierst ein Byte, aber es ist dir egal, weil du genügend davon hast. Ist auch ein Standpunkt.
Zu deiner eigentlichen Frage: Das Ereignis OnBeforeNavigate2() hast du dir richtig ausgesucht. Es gibt noch andere Ansätze, aber vielleicht ist das ja für dich der richtige. Du kannst die Handhabung für komplexere Anwendungen noch vereinfachen, indem du ein eigenes Protokoll verwendest.
Code:
marabu:appid=demo&code=007&test=false
Delphi-Quellcode:
marabu
function TWebForm.CheckUrl(url: String): Boolean;
var s: TStrings; begin Result := CompareText(ParseStr(url, ':'), 'marabu') = 0; if Result then begin s := TStringList.Create; s.Delimiter := '&'; s.DelimitedText := url; ShowMessage(s.Text); s.Free; end; end; procedure TWebForm.WebBrowserBeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); begin Cancel := CheckUrl(url); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz