Yorumları: 855
Konuları: 40
Kayıt Tarihi: 11-11-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.385
Uzman
(28-07-2024, Saat: 10:47)nehirnnn Adlı Kullanıcıdan Alıntı: Ben FNC Webbrowser kullanıyorum ama normal webbrowser da da mantık aynıdır herhalde.
Javascript içinde elde ettiğim bir değişken değerini Delphi içindeki bir değişkene nasıl aktarabilirim?
procedure TfMain.btnClick(Sender: TObject);
var js:string;
begin;
js := 'javascript: var simge=$("span[class*='+'''title-ZJX9Rmzv'''+']").text();';
wb1.ExecuteJavaScript(js);
end;
Buradaki javascript içindeki "simge" değişkeninin değerini Delphi içinde kullanmak istiyorum.
Merhabalar,
procedure TfMain.btnClick(Sender: TObject);
var
js: string;
begin
js := 'var simge=document.querySelector("span[class*=\'title-ZJX9Rmzv\']").textContent; simge;';
wb1.ExecuteJavaScript(js,
procedure(const AResult: string)
var
simge: string;
begin
simge := AResult;
ShowMessage('JavaScript Değeri: ' + simge);
end
);
end;
gibi bir yaklaşım yardımcı olabilir sanırım. Kodları test etmedim bilginiz olsun.
Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Yorumları: 186
Konuları: 41
Kayıt Tarihi: 19-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 236
Acemi
Yöntem doğru gibi, ama ne denediysem "null" değeri alıyorum. Javascript içinde hangi komut AResult a yansıyor, onu bulamadım.
document.write ve jquery komutlarını denedim ama hep null değeri alıyorum.
Yorumları: 1.502
Konuları: 83
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 12.314
Üstad
Merhaba,
window.chrome.webview.postMessage yöntemini incelemenizi tavsiye edebilirim.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 1.502
Konuları: 83
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 12.314
Üstad
(29-07-2024, Saat: 12:33)nehirnnn Adlı Kullanıcıdan Alıntı: (29-07-2024, Saat: 12:10)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Merhaba, window.chrome.webview.postMessage yöntemini incelemenizi tavsiye edebilirim.
Maalesef yine "null" dönüyor. "simge" değişkenini javascript içinde alert ile kontrol ediyorum, olması gereken değeri görüyorum. Yani javascript içinde null değil.
Ancak aşağıdaki kod içinde AResult null çıkıyor.
wb1.ExecuteJavaScript(js,procedure(const AResult: string)
var
simge: string;
begin
simge := AResult;
ShowMessage('JavaScript Değeri: ' + simge);
end
);
Benim bahsettiğim yöntemi izlemediğinizi görüyorum verdiğiniz örnekten. Ayrıca; verdiğim linki inceleyip okumadığınızı da anlıyorum. Okumuş olsa idiniz; OnWebMessageReceived olay yöneticisinin etrafında biraz dolaşmak durumunda kalırdınız. Ayrıca herhangi bir Javascript kodu (bahsettiğim postMessage metodunu kullanmadığınız durum için) asenkron olarak çalışacaktır. Bu kodun Javascript tarafında Execute edilmesinin Delphi tarafında beklenilmesi gerekir. Bunun içinde OnExecuteScript olaylarını incelemeniz gerekir. Tabii ben bunları TEdgeBrowser için söylüyorum. Denemelerinizi onun üstünde yapabilirsiniz.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...