Webbrowser java script kontrolü

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdem55
Üye
Mesajlar: 22
Kayıt: 18 Mar 2014 06:54

Webbrowser java script kontrolü

Mesaj gönderen erdem55 » 18 Ara 2017 06:23

Arkadaşlar web sayfası üzerinde belli bir bölümde aşağıdaki kod devreye giriyor.

Kod: Tümünü seç

         function TurkAyniOdaKontrol() {
            
             $.confirm({
                 content: "Aynı oda da kişi bilgisi bulunmaktadır. Eklemek istediğinize emin misiniz?",
                 buttons: {
                     Tamam: function () { 
                         javascript: __doPostBack('btnTurkAyniOda', 'click');
                     },
                     İptal: function () { }
                 }
             });

         }
bu kod devreye girdiğinde otomatik tamam butonuna tıklatmam gerekiyor. Başarılı olamadım, yardımınızı rica ediyorum. Web Sayfasında aşağıdaki ekran beliriyor.
aynioda.png
aynioda.png (1.44 KiB) 156 kere görüntülendi

erdem55
Üye
Mesajlar: 22
Kayıt: 18 Mar 2014 06:54

Re: Webbrowser java script kontrolü

Mesaj gönderen erdem55 » 18 Ara 2017 07:33

Belki ihtiyacı olan olur

Kod: Tümünü seç

Procedure TiklaTamam(wb:TWebBrowser;deger:string);
var
  Buttons:OleVariant;
  Button:OleVariant;
  I:Integer;
Begin
  Buttons := wb.OleObject.Document.getElementsByTagName('button');
  for I := 0 to Buttons.Length -1 do
  Begin
    Button := Buttons.item(I);
    if Button.innerText = deger Then
    Begin
      Button.Click();
      Break;
    End;
  End;
End;
Şeklinde çözüme ulaştım. Uses satırına 'MSHTML' eklemeyi unutmayın.
Yine de direkt javascript üzerinden bir çözüm şekli varsa öğrenmekten memnun olurum. Teşekkür ederim.

Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 04:38
Konum: İstanbul

Re: Webbrowser java script kontrolü

Mesaj gönderen adelphiforumz » 19 Ara 2017 10:49

Eğer bir mesaj penceresi içinde açılıyorsa
aşağıdaki şekilde kullanabilirsin

Kod: Tümünü seç

type
  tMessajID = (idOK       = 1,
               idCancel   = 2,
               idAbort    = 3,
               idRetry    = 4,
               idIgnore   = 5,
               idYes      = 6,
               idNo       = 7,
               idClose    = 8,
               idHelp     = 9);
....
type
  tMesajIslem = (tMsg_Yok=0, tMsg_Var=1, tMsg_Vekle=2);

procedure TdlgTest.prc_WindowsMsgClick(pMsgBoxCaption:String; pBtnClickID:tMessajID; pMsgIslem:tMesajIslem);
var
  sMsg: string;
  len: integer;
begin
  SetLength(sMsg, 127);
  len := GetWindowText(Application.ActiveFormHandle, PChar(sMsg), 127);
  if len = 0 then Exit;
  SetLength(sMsg, len);
  if pMsgBoxCaption <> '' then
    if sMsg <> pMsgBoxCaption then exit;

  if (tSwcMesajIslem = tMsg_Var)  then
  begin
      if pBtnClickID = idOK     then SendMessage(Application.ActiveFormHandle, WM_COMMAND,  ID_OK, 0);
      if pBtnClickID = idCancel then SendMessage(Application.ActiveFormHandle, WM_COMMAND,  ID_CANCEL, 0);
      if pBtnClickID = idAbort  then SendMessage(Application.ActiveFormHandle, WM_COMMAND,  ID_ABORT, 0);
      if pBtnClickID = idRetry  then SendMessage(Application.ActiveFormHandle, WM_COMMAND,  ID_RETRY, 0);
      if pBtnClickID = idIgnore then SendMessage(Application.ActiveFormHandle, WM_COMMAND,  ID_IGNORE, 0);
      if pBtnClickID = idYes    then SendMessage(Application.ActiveFormHandle, WM_COMMAND,  ID_YES, 0);
      if pBtnClickID = idNo     then SendMessage(Application.ActiveFormHandle, WM_COMMAND,  ID_NO, 0);
      if pBtnClickID = idClose  then SendMessage(Application.ActiveFormHandle, WM_COMMAND,  ID_CLOSE, 0);
      if pBtnClickID = idHelp   then SendMessage(Application.ActiveFormHandle, WM_COMMAND,  ID_HELP, 0);
  end;
end;

Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana

Cevapla