MFC의 내장 IE 브라우저 사용하기
https://msdn.microsoft.com/ko-kr/library/aa752046%28v=vs.85%29.aspx
위 내용을 따라서 해보면, MFC에서 대충 'CWebBrowser2' 이런 클래스를 만들어 준다.
그런데, 문제가 좀 많다.
이 내장 브라우저 버전이 '7.0' 이다. (xp에서는 6.0)
그렇게 때문에 다음의 자바스크립트에서 오류가 많이 발생한다. jQuery에서도..
일단 아래 링크와 같은 방법을 찾았으며, 혹시 링크가 깨지는 상황이 올까봐 간략 정리한다.
https://indidev.net/forum/viewtopic.php?f=4&t=414
(참고로 xp에서는 아무 방법도 안된다. xp에서 테스트하는 내가 이상한거지..)
1. 에러 우회하기
msdn.microsoft.com/en-us/library/aa768269(v=vs.85).aspx
silent 모드를 활성화 한다.
> m_browser.SetSilent(TRUE);
2. 브라우저 에뮬레이션 모드 세팅하기
https://msdn.microsoft.com/en-us/library/ee330730%28v=vs.85%29.aspx#browser_emulation
레지스트리의 'FEATURE_BROWSER_EMULATION' 값을 찾아가 자신의 프로그램(MyApp.exe)를 등록한다.
세팅 값은 위 링크를 따라가서 확인한다.
이 키 값은 아래의 위치에서 확인하며, 둘 중 자신에게 맞는 위치에 등록한다.
> HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
> HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
3. 헤더에 user agent 세팅하기
아래와 같이 코딩해 준다.
CString userAgent; userAgent = _T("User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/7.0"); CComVariant headers(userAgent.IsEmpty() ? NULL : (LPCTSTR)userAgent); m_browser.Navigate(m_url, NULL, NULL, NULL, &headers);
|
Windows 7 : UserAgent는 변경이 되는데, 여전히 에러가 발생한다.
결국... 위의 방법대로 하면 UserAgent는 변경이 되나, 그냥 IE7처럼 동작 하는 듯.
*이 외에도 여러가지 이슈가 있으며,
필요할때마다 정리할 것.