Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
TWebBrowser da Emulation Mode Konusu
#1
Merhaba değerli üyeler , 

TWebBrowser ile haşır neşir olanlarımızın bildiği gibi bu bileşen, sisteminizde daha üst sürüm bir İ.E yüklü olsa dahi varsayılan da "İnternet Explorer 7" emulasyon modunda çalışır halde geliyor. bunun için https://www.cyotek.com/blog/configuring-...er-control  burada bahsedildiği gibi uygulamamız içinde bu bileşenin hangi emulasyon modunda çalışacağını belirtmemiz gerekiyor.

Benim sormak istediğim ise ;
Yukarıda bahsettiğim yapı istemci tarafındaki javascript yapıları için bir emulasyon modu sağlarken sunucu tarafında gerçekeleştirilen browser versiyon kontrollerinde halen İ.E 7 gibi görünüyor, hem istemci hem sunucu tarafına etki edecek ayrı bir tanım mevcut mu?
Cevapla
#2
Sunucu tarafı bizim browser bilgilerimizi "User Agent string" ile alabildiğine göre bunun değiştirilmesi gerekir diye tahmin ediyorum.
https://theroadtodelphi.com/2011/03/11/c...component/
There's no place like 127.0.0.1
WWW
Cevapla
#3
(25-03-2019, Saat: 10:40)SimaWB Adlı Kullanıcıdan Alıntı: Sunucu tarafı bizim browser bilgilerimizi "User Agent string" ile alabildiğine göre bunun değiştirilmesi gerekir diye tahmin ediyorum.
https://theroadtodelphi.com/2011/03/11/c...component/

Teşekkür ederim ,
evet bende araştırırken bu yapıyı gördüm, ancak ilginç bir şekilde etki ettiremedim.

Tuğrul abi nin aşağıda ki yöntemiyle sorunu aşabildim,

var  UserAgent : PAnsiChar;
begin
 UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko';

 UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, UserAgent, Length(UserAgent) + 1, 0);
end;
Cevapla
#4
İleride burayı okuyanlar için not eklemekte fayda var:
UrlMkSetSessionOption oturum(session) bazlı çalışır.

https://docs.microsoft.com/en-us/previou...v%3Dvs.85)
There's no place like 127.0.0.1
WWW
Cevapla
#5
Merhaba...

Bu sorunun altında bulunsun diye yazıyorum, aşağıdaki
şekilde bir senaryo hazırlamıştım zamanın birinde. 

Bu FEATURE_BROWSER_EMULATION ile geçen durumla ilgili olsaydı, useragent ile yapılamayan türden bir yaklaşım içindir, gelen Sayfa kaynağı alınır ve header değiştirilip yeniden webbrowser'a basılır. Web Browser da IE için emulasyon yapmasını force eder. 

Login aşamasında genelde iki defa tetiklendiğinden onun
için global bir BOOLEAN değişken koyarak ikinci Navigate olayındaki değişimi kaldırdık...
var
 xboolBirinci : Boolean = False;

// Buton click olayında önce Silent özelliğini TRUE yapıyoruz, Boolean Global değişkeni FALSE yapıp ondan sonra navigate komutunu veriyoruz.
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 xboolBirinci := False;
 WebBrowser1.Silent := True;
 WebBrowser1.Navigate( Edit1.Text );
end;

// WebBrowser'in OnNavigateComplete2 eventinde bu BOOLEAN değişkeni devreye alıyoruz... iki defa çalışmasını engelliyoruz...


procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject;
 const pDisp: IDispatch; var URL: OleVariant);
Const
 strAra   = 'content="IE=100"';
 strDegis = 'content="IE=9"';
Var
 strIcerik : String;
begin
 if Assigned( pDisp ) AND (NOT xboolBirinci) then
 begin
   xboolBirinci := True; // ikinci defa değişikliği engelledik...
   strIcerik := TWebBrowser(ASender).OleObject.Document.Head.InnerHTML; // Header Kısmını Aldık
   if Pos( strAra, strIcerik ) > 0 then
   begin
     strIcerik := StringReplace( strIcerik, strAra, strDegis, [] );
     TWebBrowser(ASender).OleObject.Document.Head.InnerHTML := strIcerik; // Son halini yayına verdik.
   end;
 end;
end;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  TWebBrowser SetCookie vkamadan 2 2.075 25-02-2020, Saat: 13:36
Son Yorum: vkamadan
  twebbrowser sayfayı açamıyor samsaros@gmail.com 5 3.191 20-02-2020, Saat: 10:28
Son Yorum: TescilsizUzman
  Twebbrowser kullanmadan indy veya türevi bir bileşene js ve ajax ı kullanmak mümkünmü Ahmet İPEKÇİ 13 7.440 25-12-2019, Saat: 10:53
Son Yorum: Halil Han BADEM
  Delphi 10.3.2 Cominity için Sui Pack ve Rave Report konusu Bafehan 9 7.850 09-08-2018, Saat: 20:48
Son Yorum: Bafehan
  Delphi ile recovery mode Lord_Ares 19 13.583 06-07-2018, Saat: 01:24
Son Yorum: Lord_Ares



Konuyu Okuyanlar: 1 Ziyaretçi