AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Link einer Seite anklicken
Thema durchsuchen
Ansicht
Themen-Optionen

Link einer Seite anklicken

Ein Thema von Moyyer · begonnen am 16. Jan 2006 · letzter Beitrag vom 21. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2      
Moyyer

Registriert seit: 31. Mai 2003
155 Beiträge
 
Delphi 7 Enterprise
 
#1

Link einer Seite anklicken

  Alt 16. Jan 2006, 19:01
Hallo

Ist es möglich einen Link "virtuell" anzuklicken? Wenn ja wär ich euch sehr dankbar, wenn ihr mir sagt wie, den ich bin am verzweifeln.
In meinem Fall handelt es sich um 2 Frames. Es ist kein Problem, die Links zu finden, nur weiß ich nicht, wie ich sie "anklicke", damit die Frames erhalten bleiben.

MfG Moyyer
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Link einer Seite anklicken

  Alt 16. Jan 2006, 19:25
Hallo,

zum Anklicken verwendet du die Methode Click() des anchors, aber ob die frames dabei erhalten bleiben oder nicht, darüber hast du so keine Kontrolle. Willst du die Kontrolle behalten, dann musst du dir den Wert des href-Attributes besorgen und das Ziel selbst zu bestimmen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Moyyer

Registriert seit: 31. Mai 2003
155 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Link einer Seite anklicken

  Alt 16. Jan 2006, 20:04
Hallo marabu

Kannst du mal ein kleines Beispiel schreiben, hab keine Ahnung, wie ich den Anchor anklicke. (Geht auch erstmal ohne Frames)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Link einer Seite anklicken

  Alt 16. Jan 2006, 20:58
Okay, nimm meinen Code, den ich dir in deinen anderen thread gegeben habe, diesmal mit late binding:

Delphi-Quellcode:
// ...
  ShowMessage(win.document.links(0).click);
Das sollte den ersten link im frame anklicken.

marabu
  Mit Zitat antworten Zitat
Moyyer

Registriert seit: 31. Mai 2003
155 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Link einer Seite anklicken

  Alt 19. Jan 2006, 18:02
hallo.
sorry, das es so lange gedauert hat. war 2 tage nicht da.

dein code funktioniert leider nicht.

"links" besitzt leider kein "click"

Gibts noch eine andere möglichkeit???

mfg moyyer
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Link einer Seite anklicken

  Alt 19. Jan 2006, 19:23
Sorry, aber in meinem vorigen posting war ich wohl nicht ganz bei mir. Hier hast du Code, der funktioniert. Ich habe eine WebBrowser-Komponente auf eine Form gezogen und lade über ein Edit-Feld einen URL mit Frames.

Delphi-Quellcode:
// uses MSHTML;

procedure TWebForm.LoadButtonClick(Sender: TObject);
begin
  with WebBrowser do
    Navigate(Edit.Text);
end;

procedure ShowLinks(ec: IHTMLElementCollection);
var
  v: OleVariant;
  u: IUnknown;
  anchor: IHTMLAnchorElement;
  s: TStrings;
begin
  s := TStringList.Create;
  v := 0;
  while v < ec.length do
  begin
    u := ec.item(v, null);
    if u.QueryInterface(IHTMLAnchorElement, anchor) = 0 then
      s.Add(anchor.href);
    v := v + 1;
// so kommst du übrigens an die Click-Methode:
// with anchor as IHTMLElement do click;
  end;
  ShowMessage(s.Text);
  s.Free;
end;

procedure ShowFrames(fc: IHTMLFramesCollection2);
var
  v: OleVariant;
  win: IHTMLWindow2;
  u: IUnknown;
begin
  v := 0;
  while v < fc.length do
  begin
    u := fc.item(v);
    if u.QueryInterface(IHTMLWindow2, win) = 0 then
      ShowLinks(win.document.links);
    v := v + 1;
  end;
end;

procedure TWebForm.DemoButtonClick(Sender: TObject);
var
  doc: IHTMLDocument2;
begin
  doc := WebBrowser.Document as IHTMLDocument2;
  ShowFrames(doc.frames);
end;
Viel Spaß damit.

marabu
  Mit Zitat antworten Zitat
Moyyer

Registriert seit: 31. Mai 2003
155 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Link einer Seite anklicken

  Alt 19. Jan 2006, 23:29
hallo marabu

dein code hat soweit (auf'm Localhost) funktioniert. Bei praktischer Anwendung im Internet kam
bei "ShowLinks" ein "Zugriff Verweigert".

Der Link, auf dem ich klicken will, befindet sich auf einer frameseite (übrigens toll, das du frames gleich mit eingebunden hast.)
Gibt es eine möglichkeit diesen "Zugriff verweigert" zu umgehen oder woran liegt es?

Mfg Moyyer
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Link einer Seite anklicken

  Alt 20. Jan 2006, 12:57
Hallo Moyyer,

kann es sein, dass du IFrames und Frames in einen Topf geworfen hast? Damit es dabei keine Probleme gibt musst du den Code in DemoButtonClick so anpassen:

Delphi-Quellcode:
procedure TWebForm.DemoButtonClick(Sender: TObject);
var
  doc: IHTMLDocument2;
  fs: IHTMLFrameSetElement;
begin
  doc := WebBrowser.Document as IHTMLDocument2;
  if Succeeded(doc.body.QueryInterface(IHTMLFrameSetElement, fs))
    then ShowFrames(doc.frames)
    else ShowLinks(doc.links);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Moyyer

Registriert seit: 31. Mai 2003
155 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Link einer Seite anklicken

  Alt 20. Jan 2006, 14:52
Hi Marabu

Der Fehler kommt leider immernoch . Immnoch bei Showlinks
Auf der "Main" Frameseite sind nochmal IFrames eingebettet. wusste nicht, das es da einen unterschied gibt.

Der Link öffnet ein javascript, aber ich denke, daran kann es nicht liegen oder?
(Javascript ist aktiviert)

Falls du keine Idee mehr hast, kann ich dir ja mal den Seitenquellcode schicken.

MFG
Moyyer
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Link einer Seite anklicken

  Alt 20. Jan 2006, 17:02
Ich hätte dich jetzt um den URL gebeten, da ich ohne ein greifbares Beispiel nur noch im Nebel stochern kann.

marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz