Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Werte an geklickten Links im Browser anhängen (https://www.delphipraxis.net/108915-werte-geklickten-links-im-browser-anhaengen.html)

ptown67 21. Feb 2008 03:38


Werte an geklickten Links im Browser anhängen
 
moin leute!

ich hab mal hier im forum etwas gesucht, aber anscheinend ist es ein eher seltenes problem. ich programmiere zur zeit an einem browser, speziell für ein forum. auf dem programm ist z.b. ein button für 'startseite'. wenn dieser angeklickt wird, dann wird der link vom forum aufgerufen, plus eine variable, damit das forum eine spezielle ansicht für meinen browser wiedergibt.

beispiel:

Delphi-Quellcode:
ansicht:='?view=speziellerbrowser';
browser.navigate('http://www.forum.de/'+ansicht);
klappt alles bestens. jedoch aber nur wenn meine buttons angeklickt werden. klickt man auf einen link innerhalb des browsers, also keinen meiner buttons, dann fehlt der wert 'ansicht' und die normale version des forums wird angezeigt.

wie kann ich an einen link etwas anhängen?

ich bin jeder antwort sehr dankbar...

viele grüße fmb ;)

o0o 21. Feb 2008 06:54

Re: Werte an geklickten Links im Browser anhängen
 
hmm sry kann dir jetzt keine antwort auf dein prob geben da ich das genaue problem nichtso ganz verstehe...kannst nichtmal einen link zu deinem forum posten dass koennte ich dir vllcht mehr helfen;)

da o0o

ptown67 21. Feb 2008 07:19

Re: Werte an geklickten Links im Browser anhängen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wie gesagt, wenn man Buttons klickt, oder einen Link vom Menü aufruft funktioniert es, da das Forum dann meinen Wert '?view=pt' erkennt und dann eine spezielle Ansicht angezeigt wird, die der Admin für mich eingerichtet hat. Der Banner wird z. B. dann nicht mehr eingeblendet, da dieser bereits oben auf dem Browser ist.

Ich möchte aber auch, dass der Wert '?view=pt' an einen Link angehängt wird, der nicht in meinem Programm sitzt, sondern auf der Website, die im WebBrowser angezeigt wird.

Hier das Programm, damit jeder genau versteht, was ich meine:
(Es handelt sich um einen WAP-Browser für 'wap.se-world.info')

PS: Ich nutze den EmbeddedWebBrowser von www.bsalsa.com

o0o 21. Feb 2008 07:43

Re: Werte an geklickten Links im Browser anhängen
 
also wenn ich das jetzt richtig verstanden habe...du willst an alle links ein wenig text dranhaengen um es simple auszudruecken?

wenn es so ist wird es nicht schwer;)

hier bei den schweizern is ein schnipsel der alle links aus dem browser holt:
http://www.swissdelphicenter.ch/de/showcode.php?id=479

wenn du alle links hast musst du nur noch an jedes link deinen code haengen und den rest kannst du dir dann ausmalen oder?^^

da o0o

API 21. Feb 2008 08:05

Re: Werte an geklickten Links im Browser anhängen
 
Delphi-Quellcode:
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
CONST
  FORUM_URL = 'http://www. ....';
  ANSICHT = '.........';
begin
 if copy(url,1,length(FORUM_URL)) = FORUM_URL then
  if pos(ANSICHT, URL) = 0 then
  begin
   Cancel := True;
   URL := URL + ANSICHT;
   WebBrowser1.Navigate(URL);
  end;
end;

toms 21. Feb 2008 08:10

Re: Werte an geklickten Links im Browser anhängen
 
Kleine Anmerkung zum Browser: Unter TEmbeddedWB.UserInterfaceOptions könntest du noch
EnableThemes auf True setzen, damit die Buttons etc. im XP/Vista Style angezeigt werden.

ptown67 21. Feb 2008 08:37

Re: Werte an geklickten Links im Browser anhängen
 
Erst mal vielen Dank für die Antworten!

Noch befor ich Eure Beiträge gelesen hatte, bin ich selbst schon auf 'BeforeNavigate2' gestossen...
Habe das Code-Beispiel von API ausprobiert. Es wird zwar fehlerfrei compilerd, aber mein Wert '?view=pt' wird leider immer noch nicht an die URLs angehänt.

Nun habe ich einfach mal folgendes ausprobiert:

Delphi-Quellcode:
procedure TFrameBrowser.BrowserBeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
Browser.Navigate(URL+'?view=pt');
end;
Nun erhalte ich aber bei Programmstart den Fehler 'Stack-Überlauf'. Das Programm startet zwar dann, stürzt aber ab, wenn ich irgend einen Link anklicke... :(

Xong 21. Feb 2008 08:46

Re: Werte an geklickten Links im Browser anhängen
 
Ich finde, du gehst das Problem von der falschen Seite an.
Normalerweise schickt ein Browser seine Kennung im "User-Agent"-Header.

Auf diesen sollte die Internetseite reagieren.

API 21. Feb 2008 08:51

Re: Werte an geklickten Links im Browser anhängen
 
Zitat:

Zitat von freeman.bytes
Nun habe ich einfach mal folgendes ausprobiert:

Delphi-Quellcode:
procedure TFrameBrowser.BrowserBeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
Browser.Navigate(URL+'?view=pt');
end;

1. Du hast meinen Code "schlecht kopiert"

2. Wenn du .Navigate im BeforeNavigate2 aufrufst, wird BeforeNavigate2 immer wieder aufgerufen und es gibt einen 'Stack-Überlauf'.

3. '?view=pt' musst du ja nur dann anhängen, wenn der string in URL nicht vorkommt.

4. Setze noch Cancel auf True

5. Wenn Bedingung 3 erfüllt ist, dann gibt's das Problem von 2 nicht.

API 21. Feb 2008 08:52

Re: Werte an geklickten Links im Browser anhängen
 
Zitat:

Zitat von Xong
Ich finde, du gehst das Problem von der falschen Seite an.
Normalerweise schickt ein Browser seine Kennung im "User-Agent"-Header.

Auf diesen sollte die Internetseite reagieren.

Sein Problem hat doch nichts mit dem "User-Agent" zu tun?!?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr.
Seite 1 von 3  1 23      

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