我想用自己的 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。
知道如何解决这个问题吗?如何为来自我的浏览器的任何请求更改用户代理?
谢谢!