我想用自己的 User-Agent 值制作自己的浏览器应用程序。
基于 CHtmlView 的浏览器。MFC。
但是来自 Ajax 请求的 User-Agent 存在奇怪的问题......
我做了:
User-Agent 值用作 Navigate() 的参数。Navigate() 请求使用正确的 User-Agent。
CHtmlView 类的 OnAmbientProperty() 方法的重载。
BOOL MyHtmlView::OnAmbientProperty(COleControlSite *pSite, DISPID dispid, VARIANT *pvar) { 使用转换; // 在超链接期间更改此 Web 浏览器主机的用户代理 如果(dispid == DISPID_AMBIENT_USERAGENT) { pvar->vt = VT_BSTR; pvar->bstrVal = ::SysAllocString(m_userAgent); 返回真; } 返回 CHtmlView::OnAmbientProperty(pSite, dispid, pvar); }
这解决了超链接的问题。
但我必须将此浏览器用于某些 Ajax 应用程序。这是问题所在。对于 Ajax 请求,它使用原始 IE User-Agent 值。
我的电脑是基于 IE7 的 WinXP。
知道如何解决这个问题吗?如何为来自我的浏览器的任何请求更改用户代理?
谢谢!