Я использую автоматизацию (т.е. автоматизацию COM) для отображения некоторого HTML в Internet Explorer (9):
ie = CoInternetExplorer.Create;
ie.Navigate2("about:blank");
webDocument = ie.Document;
webDocument.Write(szSourceHTML);
webDocument.Close();
ie.Visible = True;
Появляется Internet Explorer, показывая мой HTML, который начинается как:
<!DOCTYPE html>
<HTML>
<HEAD>
...
Примечание: oct-in ot-in в режиме стандартов html5 html
За исключением того, что документ не находится в режиме стандартов ie9;он находится в режиме стандартов ie8:
Если я сначала сохраню html на моем компьютере:
, а затем просмотрим , что HTML-документ, IE переводится в стандартный режим:
Мой вопрос: как обновить функцию SpawnIEWithSource(String html)
, чтобы браузер перешел в стандартный режим?
void SpawnIEWithSource(String html)
{
Variant ie = CoInternetExplorer.Create();
ie.Navigate2("about:blank");
webDocument = ie.Document;
webDocument.Write(html);
webDocument.Close();
ie.Visible = true;
}
Редактировать: более подробный, менее понятный или читаемый пример кода, который не поможет в дальнейшем вопросе:
IWebBrowser2 ie;
CoCreateInstance(CLASS_InternetExplorer, null, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, IID_WebBrowser2, ie);
ie.AddRef();
ie.Navigate2("about:blank");
IHtmlDocument doc;
dispDoc = ie.Document;
dispDoc.AddRef();
dispDoc.QueryInterface(IHTMLDocument2, doc);
dispDoc.Release()
doc.Write(html);
doc.Close();
doc.Release();
ie.Visible = true;
ie.Release();
Обновление
Комментатор спросил в записи ieblog Тестирование сайтов с режимом браузера и режимом Doc :
Можем ли мы получить описание того, как определяется режим документа, когда содержимое HTML находится в пределахвстроенный веб-контроль?Похоже, что режим документа выбирается по-другому - может быть, из соображений совместимости?
MarkSil [MSFT] ответил:
@ Томас: Спасибо за вопрос.Элемент управления WebBrowser определяет режим doc так же, как и IE, поскольку он содержит одну и ту же веб-платформу (например, существует один общий файл mshtml.dll для хостов IE и элемента управления WebBrowser).Элемент управления WebBrowser по умолчанию использует режим просмотра в режиме совместимости, что означает, что режимом документации по умолчанию является IE7.Вот сообщение в блоге с более подробной информацией об этом: blogs.msdn.com /.../ more-ie8-extensibility-улучшений.aspx .
На что Томас ответил:
@ MarcSil (re: WebBrowser Control)
Проблема с использованием записей реестра для выбора режима документа для WebControl заключается в том, что он применяется к приложению в целом.Я пишу плагины для Google SketchUp, где у вас есть окна WebDialog для создания пользовательских интерфейсов - это просто элемент управления WebBrowser в окне.Но это приводит к проблемам, так как я хочу включить режим документа для моего экземпляра элемента управления WebBrowser, а не для всех элементов управления SU WebBrowser в целом.
Итак, мой вопрос: как вы управляете документом?режим на экземпляр для элемента управления WebBrowser?