저는 현재 회사에서 C++ BHO 프로젝트를 마무리 중입니다. 그 과정에서 나중에 예상했던 것보다 훨씬 중요한 버그를 발견했습니다. BeforeNavigate2, NavigateComplete2, NavigateError 및 기타 여러 이벤트를 캡처하는 데 현재 SINK를 사용하는 BHO가 있지만 302 리디렉션 URL을 캡처하는 문제가 발생합니다.IE8 BHO에서 계단식 302 리디렉션을 캡처하는 방법은 무엇입니까?
그래서 예를 들어, 우리는 4 개 사이트를 가지고 있다고 할 수 있습니다 :
(302) 사이트로 리디렉션하는 사이트 B를 B로 링크가 시작 사이트 A를 C (302)는 사이트 D로 리디렉션하는 사이트 C,
사용자가 사이트 A를 시작하는 최종 사이트 D : 클릭 사이트 B : 사이트 B 사이트 C로 리디렉션은 사이트 C 사이트 D로 리디렉션 : 사용자가이 시나리오에서는 사이트에서 D.
을 바람, 내 BeforeNavigate2는 사이트 B의 URL을 캡처하고 NavigateComplete는 사이트 D의 URL을 캡처합니다. 그러나 사이트 C는 내 BHO에게 완전히 보이지 않습니다. 이 시나리오에서는 B와 D 사이에 302를 추가 할 수 있으며 그 중 어떤 것도 캡처 할 수 없습니다.
참고 : 모든 리디렉션 트리거를 BeforeNavigate2로 만드는 GetHostInfo 플래그에 DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION을 추가하여 Internet Explorer 7에서이 문제를 해결했습니다. . 그러나 IE8 응용 프로그램에 HTTP 스니퍼를 주입과 동일한를 IHttpNegotiate를 사용하여 HTTP에 깊은하려고이 플래그 :(
FWIW는 DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION는 여전히 잘 작동한다. 당신이 할 수 있습니다 Microsoft Developer support에 문의하십시오 – EricLaw
GetHostInfo에서 다른 MSHTML 덮어 쓰기가 제대로 작동하는지 확인할 수 있습니다. DOCHOSTUIFLAG_SCROLL_NO 및 스크롤바가 사라져서 일부 플래그가 작동하는 것을 알았습니다. 제 동료가 Microsoft 개발자 지원 센터에 직접 문의하고 있습니다. 이제 희망 사항은 저에게 답을 줄 것입니다. – Luke