[Çözüldü] Webbrowser NewWindow3 Url Farkı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

[Çözüldü] Webbrowser NewWindow3 Url Farkı

Mesaj gönderen destiny24 »

Merhabalar,

Minik bir tarayıcı yaptığımı düşünün. PageControl e her seferinde Page ekliyor ve daha önceden hazırladığım frmWebbrowser'ı o page'e yerleştiriyorum.

Delphi XE5 te yapıyorum bu işi. TWebbrowser'ın OnNewwindow3 olayında frmWebbrowser'dan bir tane daha yaratıyorum ve popup olarak açıyorum. Buraya kadar sorun yok.

Sorun şu ki; diyelim x1.xx.com, x2.xx.com diye 2 tane sitemiz olsun.
1. Tabı açtım ve x1.xx.com'a gittim. Bu webbrowser içinde her popup pencereyi yakalamıyorum. Eğer popup olarak açılacak linkler aynı ise birinci sayfa açılıyor popup olarak, diğerini açmak için tıklıyorum ilk pencerenin üzerine açıyor onu. extradan bir pencerede değil diğer pencereyi eziyor. Aynı internet explorer'deki gibi. Bakıyorum bu arada onnewwindow3 olayı tetiklenmiyor.

Ancak diyelim birinci sekmede bir tane popup pencere açtım ve daha sonra 2. sekmede x2.xx.com u açtım. buradaki her linkte onnewwindow3 olayı tetikleniyor ve 1. sekmede olduğu gibi pencereler birbirini ezmiyor.Her seferinde yeni pencere açılıyor. ama buradaki püf nokta 2. sekmede bunu yaparken 1. sekmede açmış olduğum popup hala açık. Onu kapattığımda 2. sekmedeki sayfalar da birbirini ezmeye başlıyor.

yani başka bir sekmede her hangi bir popup açık ise diğer sekmelerdeki bütün sayfalar ayrı birer popup olarak açılıyor. Ama ben her sekmedeki linklerin aynı popup olarak açılmasını istiyorum.

Umarım anlatabilmişimdir. Olay biraz karışık.

Bu durumu embeddedwb kullandığımda yaşamıyorum. TWebbrowser'da yaşıyorum. Embededded Kullanmak istemiyorum bunu TWebbrowser ile çözmem gerek.

Yardımcı olabilir misiniz.?
En son destiny24 tarafından 16 Tem 2014 12:09 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Webbrowser NewWindow3 Url Farkı

Mesaj gönderen sabanakman »

Yeni pencere olarak açılan popup pencereler bizim belirlediğimiz WebBrowser'a yönlendirilebiliyor.

viewtopic.php?f=2&t=30512#p166935
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Re: Webbrowser NewWindow3 Url Farkı

Mesaj gönderen destiny24 »

Sorun orada değil,

Delphi XE5 ile birlikte gelen TWebbrowser da onnewwindow2 veya onnewwindow3 olayı tetiklenmiyor. Araştırmalarıma göre, bu olay internet explorer'in bir özelliği. Sayfa üzerinde bir popup açılmak istendiğinde buna bir name veriliyor. bu da web sayfasının Name özelliği oluyor. ( window.name ) Tekrar bir popup açılmak istendiğinde ise bu isimde bir pencere var ise bu pencere üzerine açılıyor sayfa, yeni bir popup oluşturulmuyor. Bu durumda OnBeforeNavigate2 olayında TargetFrameName özelliğini görebiliyoruz ancak değiştiremiyoruz. const olarak tanımlanmış event içerisinde. TargetFrameName'i navigate olmadan önce bulup uniqe olacak şekilde değerini değiştirebilirsek aslında sorun çözülmüş oluyor.

Ama Nasıl ?
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Webbrowser NewWindow3 Url Farkı

Mesaj gönderen destiny24 »

Ben sorunu çözdüm, belki başka arkadaşlar da öğrenmek isteyebilir.

documentCompleted olayında yani sayfanın yüklenme olayı bittiğinde Document.ParentWindow.Name değerini herhangi bir şey ile değiştiriyorum. O link tıklandığında ben değiştirmiş olduğum için window.name ile o sayfayı çağırsa bile aynı sayfadan bulamadığı için yeni popup açıyor.

Document.ParentWindow.Name := Document.ParentWindow.Name + '1'; gibi bir şey bile işinize yarayabilir
Cevapla