2

我编写了一个简单的 C++ 程序,它使用 IWebBrowser2 和我的 HTML 标头(Referer、UserAgent)在 IE 窗口中打开一个测试页面。一切正常。测试页面上的 PHP 函数显示修改后的标头。但是,Javascript(document.referrer、navigator.userAgent)没有。如何在 IWebBrowser2 IE 窗口中为 Javascript 设置引用者和用户代理?

这是我的程序:

#include <windows.h>
#include <Exdisp.h>

int main(){
    if (SUCCEEDED(OleInitialize(NULL))){
        IWebBrowser2* wb;

        CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&wb);

        if(wb){
            VARIANT vempty;
            VariantInit(&vempty);

            VARIANT vheaders = { 0 };
            BSTR headers = SysAllocString( L"Referer: http://example.com\r\nUser-Agent: xyz\r\n" );
            V_VT( &vheaders ) = VT_BSTR;
            V_BSTR( &vheaders ) = headers;

            BSTR url = SysAllocString(L"http://localhost/test2.php");

            HRESULT hr = wb->Navigate(url, &vempty, &vempty, &vempty, &vheaders);

            if(SUCCEEDED(hr)){
                wb->put_Visible(VARIANT_TRUE);
            }
            else{
               wb->Quit();
            }

            SysFreeString(url);
            SysFreeString(headers);
            wb->Release();
        }

        OleUninitialize();
    }

    system("PAUSE");
}
4

0 回答 0