TWebBrowser.OleObject.Document sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

TWebBrowser.OleObject.Document sorunu

Mesaj gönderen ahmetax »

Merhaba,
Delphi7 ile web sitelerimdeki yazıların kaçar kez okunduğunu derleyip raporlayan bir programcık yazmıştım.
Sitelerde, çağırıldığında ilgili makalenin okunma sayısını döndüren bir php script var. Bu script ekrana ilgili rakamı yazıyor.
178 veya 1365 gibi. Bu sayfada başka hiç bir html veya başka bir kod bulunmuyor.
Delphi ile WebBrowser üzerinden php scriptini çağırıp, WebBrowser1.OleObject.Document.Body.InnerHTML fonksiyonu ile bu değeri okuyor ve gerekli işlemleri yaptırıyorum.
Bu program bir kaç yıldır sorunsuz çalışıyordu.
Ancak bir kaç gün önce bu sitelerden biri sorun yaratmaya başladı.
PHP scriptinin pencereye ilgili değeri yazmasında herhangi bir sorun yok. Ancak Delphi tarafında bu site ile ilgili tüm işlemlerde WebBrowser1.OleObject.Document geçerli bir pointer almasına rağmen WebBrowser1.OleObject.Document.Body her zaman nil döndürüyor.
Ne yaptıysam, bir çözüm üretemedim.
Sorunun kaynağı ve çözüm yolu ne olabilir?
Teşekkürler.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: TWebBrowser.OleObject.Document sorunu

Mesaj gönderen Lord_Ares »

ondocument complate kısmında WebBrowser1.OleObject.Document.Body.Innertext olarak bir memoya sayfa kaynağını çekin gelen değer boşmu inceleyin. Kodlamanızı ve sayfanızı bilmediğimiz için yorum yapmak zor . Belkide sayfanız complate olmadan çekmeye çalışıyor olabilirsiniz.
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

Re: TWebBrowser.OleObject.Document sorunu

Mesaj gönderen ahmetax »

Ben hem OnDocumentComplete, hem de OnNavigateComplete2 prosedürlerini kullanıyordum.
OnNavigate2 işlemini devre dışı bıraktığımda, sorunlu sitenin OnDocumentComplete prosedürünü tetikleyemediğini farkettim.
WebBrowser'i görünür hale getirdiğimde sorunlu sitenin Web sayfası bulunamıyor mesajı verdiği ortaya çıktı.
Ancak ilginç olan şey, aynı adres bilgilerini harici bir Browser programının adres kutusuna yazdığımda sorun olmuyor.
Bu durumda TWebBrowser bileşeni aslında doğru olan bir adresi karşı tarafa doğru şekilde iletemiyor demek.
Kısacası problemin şekli değişti.
Yeni sorum şu şekilde: WebBrowser bileşeni doğru adrese niçin erişemez?
Teşekkürler.
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

Re: TWebBrowser.OleObject.Document sorunu

Mesaj gönderen ahmetax »

Problem çözüldü.
Sözkonusu sitelerde Wordpress çalışıyordu. Sorunlu sitedeki bir eklenti, kullandığım scriptte warning mesajına neden oluyormuş.
Önce o eklentiyi devre dışı bıraktım. Sonra da kendi PHP scriptimde display_errors(0); komutuyla warning ve hata mesajlarının engellenmesini sağladım.
Uyarı mesajıyla "web sayfası bulunamadı" mesajı arasında bir bağlantı kuramasam da problem çözülmüş oldu.
Yani, delphi tarafında - TWebBrowser bileşeninde bir sorun yokmuş! :)
Cevapla