Fórum Capturando LINKS #178627

30/08/2003

0

Estou criando um navegador com feramentas diversas, não estava encontrando problemas ate querer inserir uma opção de captura de links, por incrivel que pareça estou terminando a 8ª linha e não consegui fazer com que os malditos links sejam capturados corretamente... se puderem me ajudar, pois eu coloco o delphi a buscar desde href pois não consigo fazer com que o delphi saiba parar no fim do link sem ter que criar um mostro de codigo... pois acabo colocando o delphi para contar a direita os até achar ´<´ (o fim do link)... tem uma forma mais rapida para isso???


Dan_rs

Dan_rs

Responder

Posts

01/09/2003

Cebikyn

Se vc estiver usando o [i:61823576ef]TWebBrowser[/i:61823576ef], você pode usar o as propriedades dele. Veja o seguinte código:

procedure TForm1.Button1Click(Sender: TObject); 
var 
  i: Integer; 
begin 
  for i:=0 to WebBrowser1.OleObject.Document.links.Length - 1 do 
    Listbox1.Items.Add(Webbrowser1.OleObject.Document.Links.Item(i)); 
end; 

{*****************} 

procedure TForm1.Button2Click(Sender: TObject); 
var 
  u : variant; 
  v : IDispatch; 
  s : string; 

  procedure RecurseLinks(htmlDoc: variant); 
  var 
    BodyElement : variant; 
    ElementCo: variant; 
    HTMLFrames: variant; 
    HTMLWnd : variant; 
    j, i : integer; 
  begin 
    if VarIsEmpty(htmlDoc) then 
      exit; 
    BodyElement := htmlDoc.body; 
    if BodyElement.tagName = ´BODY´ then 
    begin 
      ElementCo := htmlDoc.links; 
      j := ElementCo.Length - 1; 
      for i := 0 to j do 
      begin 
        u := ElementCo.item(i); 
        s := u.href; 
        listLinks.Items.Add(s); 
      end; 
    end; 
    HTMLFrames := htmlDoc.Frames; 
    j := HTMLFrames.length - 1; 
    for i := 0 to j do 
    begin 
      HTMLWnd := HTMLFrames.Item(i); 
      RecurseLinks(HTMLWnd.Document); 
    end; 
  end; // RecurseLinks 
begin 
  v := WebBrowser1.document; 
  listLinks.Clear; 
  RecurseLinks(v); 
end;


Os códigos a cima colocam os links em um [i:61823576ef]TListBox[/i:61823576ef]. O primeiro é para páginas sem [i:61823576ef]frames[/i:61823576ef], e o segundo é para páginas com [i:61823576ef]frames[/i:61823576ef]. Qualquer dúvida entre em contato.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar