yeni açılan pencere adresi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

yeni açılan pencere adresi

Mesaj gönderen Lord_Ares »

dehideki webbrowser ile bir sayfa açtım, sayfadaki linki tıkladığımda yeni pencerede açtı. İşte bu sayfayı açmadan önce sayfanın adresini yaklayıp labela nasıl atarım.

şöylemi yapmalıyım

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);

begin
label1.caption:=webbrowser1.location.url;
end;

bunu denedim sonuç alamadım.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: yeni açılan pencere adresi

Mesaj gönderen mrmarman »

Basit mantıkla gidelim.

Yeni açılan Explorer penceresinden adres satırı almalıyız. Ama daha önce açık olan explorer pencerelerinden hangisi olduğunu bulmak sıkıntılı.

O zaman ilüzyon yaparak bu işi kendimiz yapıcaz. Nasıl yapıcaz; açılacak explorer penceresini bizim belirleyeceğimiz bir tanesine yönlendiricez. Sonra da o pencereden url alıp kapatıcaz ve asıl ana webbrowser penceremize navigate yaptırıcaz.

Uygulama: Forma ikinci bir tane WebBrowser ekleyerek başlıycaz. Bu ikinci webbrowser'in tek görevi hangi pencere navigate edilecek olursa olsun, cancel ederek ilgili URL'yi WebBrowser1'e yani asıl penceremize geri yönlendirecek. Örneği aşağıda...

Kod: Tümünü seç

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
begin
  ppDisp := WebBrowser2.Application;
end;

Kod: Tümünü seç

procedure TForm1.WebBrowser2BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  Cancel := True;
  WebBrowser1.Navigate( URL );
end;
başarılar...
Resim
Resim ....Resim
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: yeni açılan pencere adresi

Mesaj gönderen Lord_Ares »

hocam harbiden ilüzyon, harika fikir. teşekkürler.
CHack
Üye
Mesajlar: 14
Kayıt: 21 Ağu 2015 12:35

Re: yeni açılan pencere adresi

Mesaj gönderen CHack »

[quote="mrmarman"][/quote] Peki arkadaşlar aynı sorun bendede var fakat benim sorunumda açılan popup kapanmadan adresi almam lazım yönlendirme ile değil kapattıkta link değişiyor nasıl yaparım bilmiyorum böyle yazdım error çıktı

Kod: Tümünü seç

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
var url: WideString;
begin
url := ((TWebBrowser(ASender).document as IHTMLDocument2).activeElement as IHTMLElement).getAttribute('href', 0);
Webbrowser2.Navigate(url);
end;
hata çıktı lütfen yarım edin
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: yeni açılan pencere adresi

Mesaj gönderen mrmarman »

URL'ye ne geliyor baktın mı ? Ayrıca merak ettim hata ne ki :?: :roll: Hata verdi demek olmaz akıl okumada başarılı değilim.
Resim
Resim ....Resim
CHack
Üye
Mesajlar: 14
Kayıt: 21 Ağu 2015 12:35

Re: yeni açılan pencere adresi

Mesaj gönderen CHack »

mrmarman yazdı:URL'ye ne geliyor baktın mı ? Ayrıca merak ettim hata ne ki :?: :roll: Hata verdi demek olmaz akıl okumada başarılı değilim.
Resim bu hatayı alıyorum üstdeki kodda nasıl düzelte bilirim ayrıca hata çıktıktan sonra popup açılıyor fakat popupta sayfa yüklenmiyor istediğim popup açıldıktan sonra popupta olan urlyi kopyalama ve o urlyi webbrowserde açmak bir kaç işlem yapcam ve popupu kapatıcam teşekkür ederim ilgilendiğiniz için hocam
Cevapla