Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebbrowser und auf Klick auf einen Link reagieren (https://www.delphipraxis.net/65921-twebbrowser-und-auf-klick-auf-einen-link-reagieren.html)

Angel4585 22. Mär 2006 11:51


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:

Angel4585 23. Mär 2006 10:07

Re: TWebbrowser und auf Klick auf einen Link reagieren
 
Habs jetzt so gelöst:

Delphi-Quellcode:
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;
Das Leben kann sooo einfach sein....

Delphi-Quellcode:
Copy(URL,8,Length(URL)-8);
Das ist übrigens weil der TWebbrowser bei mir automatisch 'http://Test/' daraus macht

So wird der Link nur abgefangen und nicht ausgelöst.

Aber wie ich an das alt tag komme weis ich trotzdem nicht... :gruebel:

marabu 23. Mär 2006 10:12

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:
Copy(URL,8,Length(URL)-8);
Die zweite 8 muss eine 7 sein.

Grüße vom marabu

Angel4585 23. Mär 2006 10:18

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.

marabu 23. Mär 2006 12:12

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:
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;
marabu


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