Delphi Can

Orjinalini görmek için tıklayınız: Twebbrowser kullanmadan indy veya türevi bir bileşene js ve ajax ı kullanmak mümkünmü
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2
Herkese çok selamlar. Twebbrowser kullanmadan indy veya türevi bir bileşen ile js ve ajax ı kullanmak mümkünmü acaba. Yöntem ne olmalı veya Ücretli bir bileşende olabilir.
TWebBrowser kullanmadan, IHTMLDocument2 vs. Interface'ler kullanılarak yapılabilir. ( belki Smile )
Webde araştırma yaparken tugrul helvacı hocanın yazısıyla karşılaştım.
http://www.tugrulhelvaci.com/?p=285
(08-12-2019, Saat: 17:35)Ahmet İPEKÇİ Adlı Kullanıcıdan Alıntı: [ -> ]Herkese çok selamlar. Twebbrowser kullanmadan indy veya türevi bir bileşen ile js ve ajax ı kullanmak mümkünmü acaba. Yöntem ne olmalı veya Ücretli bir bileşende olabilir.

Merhabalar,

Aşağıdaki link'te JavaScript çalıştırmak için bir bileşen seti var. İnceleyin isterseniz.

https://www.winsoft.sk/jsengine.htm

Kolay gelsin.
(10-12-2019, Saat: 07:29)emre21 Adlı Kullanıcıdan Alıntı: [ -> ]https://github.com/grijjy/DelphiDuktape

procedure Run;
var
 Context: PDukContext;
begin
 { Create Duktape context }
 Context := duk_create_heap_default;
 try
   { Register native function called "print" that takes a
     variable number of arguments. }
   duk_push_c_function(Context, NativePrint, DUK_VARARGS);
   duk_put_global_string(Context, 'print');

   { Register native function called "add" that takes 2 arguments. }
   duk_push_c_function(Context, NativeAdd, 2);
   duk_put_global_string(Context, 'add');

   { Evaluate some JavaScript code.
     This will call into our NativePrint and Add functions. }
   duk_eval_string(Context, 'print("Hello", "World!");');
   duk_eval_string(Context, 'print("2 + 3 =", add(2, 3));');

   { Pop eval result }
   duk_pop(Context);
 finally
   duk_destroy_heap(Context);
 end;
end;

neden bir javascprit kodunu görsel arabirim olmadan render etmek istiyorsunuz, ne amaçla böyle birşeye ihtiyaç duydunuz?
biliyorsunuz browser diğer js dosyalarınıda sunucudan alır ve include eder, böylece çapraz fonksiyonları js lerden kullanabilirsiniz, siz bunları manuel yapacaksınız öyleyse.
veya ben javascprit konusunda iyiyim ama delphi anlamıyorum, javascprit den yürüyeceğim soket işlerimi vs oradamı yaptıracağım diyorsunuz.

açıkcası merak ettim sizi bu kullanıma arayişa iten şeyi, örneklendirirseniz sevinirim?

Telerik kullanılmış bir sitede her tarafı js ve ajaxdan oluşan, indy ve twebrowseri bir şekilde birleştirerek veri gönderimi yapmam gereken bir durum söz konusu. Site dogal olarak webbrowser üzerinde çok hantal bir şekilde işleme tabi tutuluyor, bunu aşabileceğim bir yol varmı diye bir arayışa girdim. Teşekkür ederim ilginize
O halde birde şunu deneyin.

https://github.com/salvadordf/CEF4Delphi
(10-12-2019, Saat: 23:16)engerex Adlı Kullanıcıdan Alıntı: [ -> ]O halde birde şunu deneyin.

https://github.com/salvadordf/CEF4Delphi
Onuda denedim hocam Smile
Bir türlü post işlemini gönderemedim. Fikriniz varmı acaba.

Kod:
<span id="ctl00_ctl00_bodyCPH_ContentPlaceHolder1_txtTaxNo_wrapper" class="riSingle RadInput RadInput_Metro" style="width:200px;">
<input id="ctl00_ctl00_bodyCPH_ContentPlaceHolder1_txtTaxNo" name="ctl00$ctl00$bodyCPH$ContentPlaceHolder1$txtTaxNo" type="text" maxlength="11" size="20" class="riTextBox riEnabled formText" value="3XXXXXXXX94" style="color: black; font-weight: bold;" tabindex="0">
<input id="ctl00_ctl00_bodyCPH_ContentPlaceHolder1_txtTaxNo_ClientState" name="ctl00_ctl00_bodyCPH_ContentPlaceHolder1_txtTaxNo_ClientState" type="hidden" autocomplete="off" value="{"enabled":true,"emptyMessage":"","validationText":"3XXXXXXX94","valueAsString":"3XXXXXXXX94","valueWithPromptAndLiterals":"3XXXXXXX94"}" tabindex="0"></span>
<input type="button" name="ctl00$ctl00$bodyCPH$ContentPlaceHolder1$btnMustahsil" value="Müstahsil Ara" onclick="javascript:__doPostBack('ctl00$ctl00$bodyCPH$ContentPlaceHolder1$btnMustahsil','')" id="bodyCPH_ContentPlaceHolder1_btnMustahsil" style="color:Black;font-weight:bold;" class="rfdDecorated" tabindex="-1">


RqEUdY.jpg

var
 uri : TIdURI;
 vals : TStringList;
 url : String;
 response : TStringStream;
begin
 try
   response := TStringStream.Create('');
   try
     vals := TStringList.Create;
     try
       vals.Add('__EVENTTARGET=');
       vals.Add('__EVENTARGUMENT=');
       vals.Add('__VIEWSTATE='+memo2.Text);
       vals.Add('__VIEWSTATEGENERATOR='+Edit2.Text);
       vals.Add('ctl00$ctl00$bodyCPH$ContentPlaceHolder1$txtTaxNo=XX3XXXX0X94');
       vals.Add('ctl00$ctl00$bodyCPH$ContentPlaceHolder1$btnMustahsil=Müstahsil Ara');

ve bunu da denedim

       vals.Add('ctl00$ctl00$bodyCPH$ContentPlaceHolder1$txtTaxNo=
{"enabled":true,"emptyMessage":"","validationText":"XX33XXXXX94","valueAsString":"XX33XXXXX94","valueWithPromptAndLiterals":"XX33XXXXX94"}');
       vals.Add('ctl00$ctl00$bodyCPH$ContentPlaceHolder1$btnMustahsil=Müstahsil Ara');
(11-12-2019, Saat: 03:33)emre21 Adlı Kullanıcıdan Alıntı: [ -> ]bazı web sunucuları asp net gibi sayfa içersine hidden field veya özel cookie yerleştirir, bu kod sessionid gibidir ancak biraz daha farklı, her sayfa yenilenmesinde değişir, ve değişen o kod esasında sizin en son aldığınız sayfayıda temsil eder, haliyle siz eski bir kodla (çünkü server da size yollanan en son kod kayıtlıdır) veya kodsuz request gönderdiğinizde bu işleme alınmaz.

diğer türlü ref useragent sessionid ve request i düzgün formatta gönderdiğinizde cevap almanız gerekir,
belki requestinizde encoding problemi vardır, paketsniffer kavramını arayip tcp http portu debug edin,
sizin soketten ne gidiyor, browserdan ne gidiyor.

Aynen hocam teşekkür ederim, gözümden kaçmış bu. Sorguyu yapabildim. Teşekkür ederim.
Parameters.Add('ctl00$ctl00$bodyCPH$ContentPlaceHolder1$txtTaxNo=xxxxxxxxxx');
Parameters.Add('ctl00_ctl00_bodyCPH_ContentPlaceHolder1_txtTaxNo_ClientState={"enabled":true,"emptyMessage":"","validationText":"xxxxxxx","valueAsString":"xxxxxxxxx","valueWithPromptAndLiterals":"xxxxxxxx"}');
Parameters.Add('ctl00$ctl00$bodyCPH$ContentPlaceHolder1$btnMustahsil=Müstahsil Ara');

// problem burada bir türlü post edemedim buraya kadar herşey normal
Parameters.Add('ctl00$ctl00$bodyCPH$ContentPlaceHolder1$grdMustahsil$ctl00$ctl04$ctl00');
Parameters.Add('ctl00$ctl00$bodyCPH$ContentPlaceHolder1$grdMustahsil$ctl00$ctl04$ctl00'+#39+',');

html kodu şu şekilde :<a href="javascript:__doPostBack('ctl00$ctl00$bodyCPH$ContentPlaceHolder1$grdMustahsil$ctl00$ctl04$ctl00','')" style="color:Red;">Seç</a>
//
ne denediysem bu kısmı post ettiremedim. Sizden ricam bir bakabilirmisiniz arkadaşlar nerede hata yapıyorum.
Sayfalar: 1 2