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.
TWebBrowser.OleObject.Document sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: TWebBrowser.OleObject.Document sorunu
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.
Re: TWebBrowser.OleObject.Document sorunu
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.
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.
Re: TWebBrowser.OleObject.Document sorunu
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ş!
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ş!
