Клиенты элемента управления WebBrowser совместно используют глобальные параметры

Предупреждение

Устаревшее и не поддерживаемое классическое приложение Internet Explorer 11 было окончательно отключено путем обновления Microsoft Edge в некоторых версиях Windows 10. Дополнительные сведения см. в разделе Часто задаваемые вопросы о прекращении поддержки программы для настольных компьютеров Internet Explorer 11.

В этой статье приведены методы реализации глобальных параметров для совместного использования клиентов элементов управления WebBrowser путем переопределения метода OnAmbientProperty класса на основе CWnd-размещения.

Исходная версия продукта: Интернет-Обозреватель
Исходный номер базы знаний: 183412

Симптомы

Все узлы элемента управления WebBrowser используют одни и те же глобальные параметры Интернета.

Разрешение

Для большинства глобальных параметров Интернета не существует поддерживаемого метода автоматического сохранения набора свойств для каждого узла WebBrowser.

Однако некоторые параметры загрузки, например, следует ли скачивать элементы ActiveX или нет, можно переопределить и указать для каждого узла.

Статус

Такое поведение является особенностью данного продукта.

Дополнительная информация

Как описано в пакете SDK для интернет-клиента (InetSDK), узлы WebBrowser могут реализовать свойство ambient DISPID_AMBIENT_DLCONTROL в интерфейсе диспетчеризации по умолчанию, чтобы переопределить глобальные параметры для параметров скачивания.

Пример WALKALL в InetSDK (\InetSDK\Samples\Walkall) демонстрирует этот метод для узла MSHTML. Аналогичный метод можно использовать в узлах WebBrowser для достижения того же эффекта.

MSHTML также запросит новый агент пользователя через DISPID_AMBIENT_USERAGENT при переходе по щелкающим гиперссылкам. Это свойство ambient можно переопределить, но оно не используется при программном вызове метода Navigate. Это также не приведет к изменению userAgent свойства объекта навигатора DOM или поведения clientInformation — это свойство всегда будет отражать собственную строку UserAgent Обозреватель Интернета.

Узел MFC элемента управления WebBrowser может легко повлиять на эти внешние свойства, переопределив метод OnAmbientProperty класса на основе CWnd:

BOOL CWBHostView::OnAmbientProperty(COleControlSite* pSite,
                                    DISPID dispid, VARIANT* pvar)
{
USES_CONVERSION;
    // Change download properties - no java, no scripts...
    if (dispid == DISPID_AMBIENT_DLCONTROL)
    {
        pvar->vt = VT_I4;
        pvar->lVal = DLCTL_NO_SCRIPTS | DLCTL_NO_JAVA
                   | DLCTL_NO_RUNACTIVEXCTLS | DLCTL_NO_DLACTIVEXCTLS;

        return TRUE;
    }

    // Change user agent for this web browser host during hyperlinks
    if (dispid == DISPID_AMBIENT_USERAGENT)
    {
        CString strUserAgent("MyWebBrowserHost");

        pvar->vt = VT_BSTR;
        pvar->bstrVal = ::SysAllocString(T2OLE(strUserAgent));

        return TRUE;
    }

    return CView::OnAmbientProperty(pSite, dispid, pvar);
}

Значения DISPID_AMBIENT_* и DLCTL_* определяются в Mshtmdid.h (\InetSDK\Include\MSHTMDID. H).

Ссылки

Дополнительные сведения о разработке веб-решений для Microsoft Internet Обозреватель см. в разделе Режим Обозреватель Интернета и средства разработки.