FMX Webbrowser
FMX Webbrowser
Selamlar,
Windows form da
WebBrowser1.OleObject.Document.... in karşılığı FMX formda nedir?
element click ve text olaylarını tetiklemem ve textlere ulaşmam gerekli. Windows formda sorun yok ama FMX formda nasıl yapılır bulamadım.
Yardımlarınızı rica ediyorum.
Windows form da
WebBrowser1.OleObject.Document.... in karşılığı FMX formda nedir?
element click ve text olaylarını tetiklemem ve textlere ulaşmam gerekli. Windows formda sorun yok ama FMX formda nasıl yapılır bulamadım.
Yardımlarınızı rica ediyorum.
Re: FMX Webbrowser
WebBrowser.EvaluateJavaScript yardımıyla sayfada Javascript çalıştırarak yapılabilir sanırım.
Mesela buton click eventi için:
Mesela buton click eventi için:
Kod: Tümünü seç
WebBrowser.EvaluateJavaScript('document.getElementById("buton_id").click();');
There's no place like 127.0.0.1
Re: FMX Webbrowser
Teşekkürler,
Aramalarda bu sonuca ulaştım. Ancak aynı şekilde bir elemanın değerini öğrenme işlemi nasıl yapılır bulamadım, Bunun yanında TitleChange olayına ihtiyacım var, yada sayfada gerçekleşen bir duruma göre davranmam gerekli bu durumu nasıl dinlerim.
Aslında bunların hepsi winform da yapılabilen şeyler. WinWebbrowser ı Fmx de kullanmanın bir yolu olsa güzel olur.
Aramalarda bu sonuca ulaştım. Ancak aynı şekilde bir elemanın değerini öğrenme işlemi nasıl yapılır bulamadım, Bunun yanında TitleChange olayına ihtiyacım var, yada sayfada gerçekleşen bir duruma göre davranmam gerekli bu durumu nasıl dinlerim.
Aslında bunların hepsi winform da yapılabilen şeyler. WinWebbrowser ı Fmx de kullanmanın bir yolu olsa güzel olur.
Re: FMX Webbrowser
Desktop uygulamasındaki TWebBrowser ile Firemonkey'de tamamen farklı. Herşeyden önce; biliyorsunuzdur, OLE-COM teknolojileri Windows'a özgü.
JS ile yapabileceklerinize odaklanmalısınız yada TWebBrowser'dan vazgeçeceksiniz.
JS'de addEventListener, attachEvent vs. işinize yarayabilir.
JS ile yapabileceklerinize odaklanmalısınız yada TWebBrowser'dan vazgeçeceksiniz.
JS'de addEventListener, attachEvent vs. işinize yarayabilir.
There's no place like 127.0.0.1
Re: FMX Webbrowser
Farklı olduğunu biliyorum,
Ancak aramalarda yeniden düzenlenmiş ve TWebBrowser ile yapılan işlemlerin aynısının yapılabileceği söylenenen WebBrowserEx unit ile karşılaştım github da, ancak son olarak Seatle desteği var. Ben berlin kullanıyorum ve uniti kullanamadım.
Teşekkürler.
Ancak aramalarda yeniden düzenlenmiş ve TWebBrowser ile yapılan işlemlerin aynısının yapılabileceği söylenenen WebBrowserEx unit ile karşılaştım github da, ancak son olarak Seatle desteği var. Ben berlin kullanıyorum ve uniti kullanamadım.
Teşekkürler.
Re: FMX Webbrowser
Selam,
bu durumda bir şey sormak isterim
FMX WebBrowser bir text veya edit alanın değerini nasıl alabilirim.
Bu konuda bir yardımınız olabilir mi?
bu durumda bir şey sormak isterim
FMX WebBrowser bir text veya edit alanın değerini nasıl alabilirim.
Bu konuda bir yardımınız olabilir mi?
Re: FMX Webbrowser
Yanlış bilmiyorsam EvaluateJavaScript yada execScript size bir cevap döndürmez.
Bir parametre alıp, bu parametrenin değerini değiştiren bir JS fonksiyonu yazılmış olursa istediğiniz olur.
İlgili web sayfasında değişiklik şansınız varsa böyle bir JS fonksiyonu yazabilirsiniz.
Bir parametre alıp, bu parametrenin değerini değiştiren bir JS fonksiyonu yazılmış olursa istediğiniz olur.
İlgili web sayfasında değişiklik şansınız varsa böyle bir JS fonksiyonu yazabilirsiniz.
There's no place like 127.0.0.1
Re: FMX Webbrowser
Selam,
Böyle bir JS yazdığımızı varsayalım, soru yine aynı.
Bu js nin değiştirdiği değeri delphide bir değişkene nasıl aktaracağım.
Konu dönüp dolaşıp browserdan değer almaya geliyor.
Teşekkür ederim.
Böyle bir JS yazdığımızı varsayalım, soru yine aynı.
Bu js nin değiştirdiği değeri delphide bir değişkene nasıl aktaracağım.
Konu dönüp dolaşıp browserdan değer almaya geliyor.
Teşekkür ederim.
Re: FMX Webbrowser
Şöyle bir JS fonksiyonu var diyelim:
Bunu Delphi'den çağırmak için
Yine denemeden yazdım ama bu şekilde BirDelphiDegiskeni'nin değeri değişmesi lazım.
Ayrıca aşağıdaki sayfaya göz atabilirsiniz:
https://community.embarcadero.com/blogs ... phi-xe6-55
Kod: Tümünü seç
function getCount(cnt) { cnt = 10; }
Kod: Tümünü seç
WebBrowser1.EvaluateJavaScript('getCount('+BirDelphiDegiskeni+');')
Ayrıca aşağıdaki sayfaya göz atabilirsiniz:
https://community.embarcadero.com/blogs ... phi-xe6-55
There's no place like 127.0.0.1
Re: FMX Webbrowser
Vakit bulup son gönderdiğim şekilde bir örnek denediğimde başarısız olduğunu gördüm. Bunu sebebi Javascript'te fonksiyon parametreleri değiştiremiyor oluşumuz(Parametre JS Object ise durum farklı). Dolayısıyla getCount'a gönderilen bir integer değişkenin değeri değişmeyecektir.
There's no place like 127.0.0.1
Re: FMX Webbrowser
Bunu aşmak için şöyle bir yol olabilir ama bilmem ne kadar ihtiyacınız karşılar:
Yukarıda belirttiğim şekilde Delphi'den JS'ye değer atayabiliyorsunuz. JS'deki değeri sayfa içindeki bulunan hidden input'a atarsınız. Sonra "HTML parse" ile bu input'un değerini alırsınız. Yani değişen tek şey DOM kullanarak element değerleri ulaşmak yerine HTML parse kullanmak.
Yukarıda belirttiğim şekilde Delphi'den JS'ye değer atayabiliyorsunuz. JS'deki değeri sayfa içindeki bulunan hidden input'a atarsınız. Sonra "HTML parse" ile bu input'un değerini alırsınız. Yani değişen tek şey DOM kullanarak element değerleri ulaşmak yerine HTML parse kullanmak.
There's no place like 127.0.0.1
Re: FMX Webbrowser
Bende deneme yaptım olmadı ancak cevap yazmadan önce biraz araştırma yapayım belki bir sonuca ulaşırım dedim oda olmadı.
HTML parse edebilmek için de sonuçta veriye ulaşmak gerek. WEbBrowserdan html kaynağı nasıl alabilirim.
HTML parse edebilmek için de sonuçta veriye ulaşmak gerek. WEbBrowserdan html kaynağı nasıl alabilirim.
Re: FMX Webbrowser
Şöyle birşey buldum:
https://github.com/freeonterminate/delp ... WebBrowser
FMX desteği olduğu yazıyor ve GetTagValue adında bir fonksiyonu var HTML elemanlarının değerlerini almak için
Ayrıca:
https://delphihtmlcomponents.com/
https://jonlennartaasenden.wordpress.co ... ng-engine/
https://github.com/freeonterminate/delp ... WebBrowser
FMX desteği olduğu yazıyor ve GetTagValue adında bir fonksiyonu var HTML elemanlarının değerlerini almak için
Ayrıca:
https://delphihtmlcomponents.com/
https://jonlennartaasenden.wordpress.co ... ng-engine/
There's no place like 127.0.0.1
Re: FMX Webbrowser
github WebBrowserEx, bunu inceledim. Daha öncede söylediğim gibi berlinde çalışmıyor malesef.
HtmlComponent bunu da inceledim. Editöryel anlamda işler yapıyor. O anda browser içinde çalışan html in değişen eleman değerleri veya javascript ile değişen değerler ile ilgilendiğim için buda işimi görmüyor malesef.
WebBrowserEx'i berlin için çalışır duruma getirebilseydim çok iyi olurdu ancak o kadar derinlemesine bilgi sahibi değilim.
Teşekkür ederim.
HtmlComponent bunu da inceledim. Editöryel anlamda işler yapıyor. O anda browser içinde çalışan html in değişen eleman değerleri veya javascript ile değişen değerler ile ilgilendiğim için buda işimi görmüyor malesef.
WebBrowserEx'i berlin için çalışır duruma getirebilseydim çok iyi olurdu ancak o kadar derinlemesine bilgi sahibi değilim.
Teşekkür ederim.