关于IE的webbrowser设置兼容模式的一点资料

1,https://bbs.csdn.net/topics/390764769  提到可以用ClearableListData的注册表项目

2,https://peter.bloomfield.online/changing-the-emulation-mode-of-the-microsoft-web-browser-activex-control/ 提到可以用

HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION\nlclient.exe

(For 32-bit windows, it is HKLM\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION )

3,调试发现IE8下,是在IEFRAME!CBrowserFrame::_HandleEmulate7Toggle里设置的。

IE11下不清楚,这个api没了我擦。

但IE11下经常调用MapUriToBrowserEmulationState来获取具体模拟哪个IE。

 

4,一些堆栈:

urlmon!CBrowserModeFilter::IsIE7Mode [d:\blue\inetcore\urlmon\browsermode\browsermodefilter.cpp @ 37]:

 


ChildEBP RetAddr  
0ae16d74 75aaa7a3 urlmon!CBrowserModeFilter::IsIE7Mode [d:\blue\inetcore\urlmon\browsermode\browsermodefilter.cpp @ 37]
0ae16de4 63728670 urlmon!MapUriToBrowserEmulationState+0x1f8 [d:\blue\inetcore\urlmon\browsermode\utils.cpp @ 622]
0ae16e3c 631dd6f6 MSHTML!CMarkup::GetEmulationState+0x3f5
0ae16fbc 637a4c37 MSHTML!CMarkup::PrepareDwnDoc+0x208
0ae173b4 63457bee MSHTML!CMarkup::LoadFromInfo+0x121d
0ae17508 634576f7 MSHTML!CDoc::LoadFromInfo+0x4d9
0ae175dc 75a87832 MSHTML!CDoc::Load+0xef
0ae17644 75a86a7c urlmon!CBinding::ObjectPersistMnkLoad+0x1c8 [d:\blue\inetcore\urlmon\trans\cbinding.cxx @ 4574]
0ae176c0 75a97690 urlmon!CBinding::InstantiateObject+0x2f2 [d:\blue\inetcore\urlmon\trans\cbinding.cxx @ 4075]
0ae177b4 75a54264 urlmon!CBinding::OnObjectAvailable+0x20b [d:\blue\inetcore\urlmon\trans\cbinding.cxx @ 3589]
0ae177ec 75a56679 urlmon!CBinding::OnTransNotification+0x3a3 [d:\blue\inetcore\urlmon\trans\cbinding.cxx @ 2700]
0ae17820 75a5b7d0 urlmon!CBinding::ReportData+0xa9 [d:\blue\inetcore\urlmon\trans\cbinding.cxx @ 5457]
0ae17848 75a5637c urlmon!COInetProt::ReportData+0xb7 [d:\blue\inetcore\urlmon\trans\prothndl.cxx @ 1839]
0ae17884 75a56293 urlmon!CTransaction::DispatchReport+0x19e [d:\blue\inetcore\urlmon\trans\transact.cxx @ 3195]
0ae178cc 63458ee8 urlmon!CTransaction::ReportData+0x331 [d:\blue\inetcore\urlmon\trans\transact.cxx @ 630]
0ae178ec 634593fb MSHTML!CResProtocol::_ReportData+0x28
0ae17960 63459592 MSHTML!CAboutProtocol::ParseAndBind+0x1bc
0ae199a4 75a9afdb MSHTML!CAboutProtocol::Start+0x178
0ae199e4 75a52c94 urlmon!COInetProt::StartEx+0x3e9 [d:\blue\inetcore\urlmon\trans\prothndl.cxx @ 505]
0ae19eb0 75aa1640 urlmon!CTransaction::StartEx+0xebe [d:\blue\inetcore\urlmon\trans\transact.cxx @ 4396]
0ae19f30 75a54a4c urlmon!CBinding::StartBinding+0x921 [d:\blue\inetcore\urlmon\trans\cbinding.cxx @ 2315]
0ae19f7c 75a86f86 urlmon!CUrlMon::StartBinding+0x1a6 [d:\blue\inetcore\urlmon\trans\urlmon.cxx @ 1054]
0ae19fcc 025d4410 urlmon!CUrlMon::BindToObject+0xc9 [d:\blue\inetcore\urlmon\trans\urlmon.cxx @ 831]
0ae1a010 02530c70 IEFRAME!CDocObjectHost::_StartAsyncBinding+0x1da
0ae1b0c8 0253087a IEFRAME!CDocObjectHost::SetTarget+0x3cc
0ae1b110 025306de IEFRAME!CDocObjectView::_CreateViewWindow+0x130
0ae1b154 02530651 IEFRAME!CDocObjectView::CreateViewWindow3+0x5e
0ae1b234 02530df5 IEFRAME!FileCabinet_CreateViewWindow2+0x194
0ae1b25c 02530cdf IEFRAME!CBaseBrowser2::_CreateViewWindow+0x3a
0ae1b2c4 0253106f IEFRAME!CBaseBrowser2::_CreateNewShellView+0x2ae
0ae1b300 02530f38 IEFRAME!CBaseBrowser2::_CreateNewShellViewPidl+0xc4
0ae1c3a0 025d5080 IEFRAME!CBaseBrowser2::v_NavigateToPidl+0x2bd
0ae1c3d8 024321f1 IEFRAME!CShellBrowser2::_InitializeWindow+0x258
0ae1c478 024757bd IEFRAME!CShellBrowser2::_Initialize+0x244
0ae1c4a8 023fa592 IEFRAME!CShellBrowser2_CreateInstance+0x6a
0ae1f680 02439368 IEFRAME!CTabWindow::_TabWindowThreadProc+0x1ec
0ae1f740 76e32f5c IEFRAME!LCIETab_ThreadProc+0x3e7
WARNING: Stack unwind information not available. Following frames may be wrong.
0ae1f758 0fb93a31 iertutil!Ordinal425+0x26c
0ae1f790 76bc336a IEShims!IEShims_SetRedirectRegistryForThread+0x1c1
0ae1f79c 77d29902 kernel32!BaseThreadInitThunk+0xe
0ae1f7dc 77d298d5 ntdll!__RtlUserThreadStart+0x70
0ae1f7f4 00000000 ntdll!_RtlUserThreadStart+0x1b
0:026> g
0:003> k
ChildEBP RetAddr  
042ea340 75a7edeb urlmon!CreateBrowserEmulationFilter [d:\blue\inetcore\urlmon\browsermode\utils.cpp @ 1234]
042ea3ac 63728670 urlmon!MapUriToBrowserEmulationState+0x1d8 [d:\blue\inetcore\urlmon\browsermode\utils.cpp @ 622]
042ea404 631dd6f6 MSHTML!CMarkup::GetEmulationState+0x3f5
042ea584 637a4c37 MSHTML!CMarkup::PrepareDwnDoc+0x208
042ea97c 63abe075 MSHTML!CMarkup::LoadFromInfo+0x121d
042eaa9c 63b08e0f MSHTML!CMarkup::LoadHistoryInternal+0x7f9
042eab98 6415420c MSHTML!COmWindowProxy::ExecRefresh+0xa62
042eaba8 63e1a1c5 MSHTML!CDiagnosticsBrowser::Var_refresh+0x26
042eabd0 0742360a MSHTML!CFastDOM::CDiagnosticsBrowser::Trampoline_refresh+0x35
WARNING: Stack unwind information not available. Following frames may be wrong.
042eac40 0741705b jscript9!JsVarToExtension+0x166ba
042eac88 07419846 jscript9!JsVarToExtension+0xa10b
042eae84 07484a90 jscript9!JsVarToExtension+0xc8f6
042eaebc 07484aeb jscript9!JsVarToExtension+0x77b40
042eb0b8 07421ac9 jscript9!JsVarToExtension+0x77b9b
042eb1d8 0742154b jscript9!JsVarToExtension+0x14b79
042eb20c 75a496ac jscript9!JsVarToExtension+0x145fb
042eb820 074d222b urlmon!CSecurityManager::GetSecurityIdEx2Internal+0x378 [d:\blue\inetcore\urlmon\zones\secmgr.cxx @ 3537]
042eb8b0 0741995f jscript9!DllGetClassObject+0x4c2fb
042ebab8 07421ac9 jscript9!JsVarToExtension+0xca0f
042ebc60 0741705b jscript9!JsVarToExtension+0x14b79
042ebcac 075123d8 jscript9!JsVarToExtension+0xa10b
042ebcf0 0742154b jscript9!DllGetClassObject+0x8c4a8
042ebef8 07421ac9 jscript9!JsVarToExtension+0x145fb
042ec030 0742154b jscript9!JsVarToExtension+0x14b79
042ec068 0741705b jscript9!JsVarToExtension+0x145fb
042ec0b4 077202e5 jscript9!JsVarToExtension+0xa10b
042ec100 63b2ff3b jscript9!JsVarToScriptDirect+0x36495
042ec1b4 074167d8 MSHTML!CScriptCollection::LogFirstScriptExecutionEvent+0x40
042ec238 07421ac9 jscript9!JsVarToExtension+0x9888
042ec334 07421bf4 jscript9!JsVarToExtension+0x14b79
042ec3b0 0741705b jscript9!JsVarToExtension+0x14ca4
042ec3fc 074175b8 jscript9!JsVarToExtension+0xa10b
042ec470 074174ed jscript9!JsVarToExtension+0xa668
042ec4b8 07417480 jscript9!JsVarToExtension+0xa59d
042ec504 075b771e jscript9!JsVarToExtension+0xa530
042ec568 64162d0c jscript9!DllCanUnloadNow+0x5c19e
042ec598 64162cb5 MSHTML!CEventDispatcher::_Invoke+0x47
042ec5cc 64152085 MSHTML!CEventDispatcher::_Dispatch+0x7e
042ec5f8 63bcde8a MSHTML!CDiagnosticsExternal::OnMessage+0x7d
042ec60c 03ccf31d MSHTML!CDiagnosticsScriptEngine::FireScriptMessageEvent+0x4a
042ec644 03cd6a43 DiagnosticsTap!DllInstall+0x397d
042ec680 03cd71ec DiagnosticsTap!DllInstall+0xb0a3
042ec6ac 03cd716d DiagnosticsTap!DllInstall+0xb84c
042ec6e8 03cd73dc DiagnosticsTap!DllInstall+0xb7cd
042ec704 03cd0aeb DiagnosticsTap!DllInstall+0xba3c
042ec728 03ccb309 DiagnosticsTap!DllInstall+0x514b
042ec780 770e62fa DiagnosticsTap+0xb309
042ec7ac 770e6d3a user32!InternalCallWinProc+0x23
042ec824 770e77c4 user32!UserCallWinProcCheckWow+0x109
042ec884 770e788a user32!DispatchMessageWorker+0x3b5
042ec894 023fa94c user32!DispatchMessageW+0xf
042efa60 02439368 IEFRAME!CTabWindow::_TabWindowThreadProc+0x464
042efb20 76e32f5c IEFRAME!LCIETab_ThreadProc+0x3e7
042efb38 0fb93a31 iertutil!Ordinal425+0x26c
042efb70 76bc336a IEShims!IEShims_SetRedirectRegistryForThread+0x1c1
042efb7c 77d29902 kernel32!BaseThreadInitThunk+0xe
042efbbc 77d298d5 ntdll!__RtlUserThreadStart+0x70
042efbd4 00000000 ntdll!_RtlUserThreadStart+0x1b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值