如何将WebBrowser控件放入IE9的标准中?

我正在使用自动化(即COM自动化)在Internet Explorer(9)中显示一些HTML:


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>

   ...

注意: 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条目上要求使用浏览器模式与文档模式测试网站:


当HTML内容位于嵌入式Web控件中时,我们能否描述文档模式的确定方式?似乎是文档模式选择不同-也许是出于兼容性原因?


MarkSil [MSFT]回应:


@Thomas:感谢您提出这个问题。WebBrowser控件以与IE相同的方式确定文档模式,因为它包含相同的Web平台(例如,在IE和WebBrowser控件主机之间存在一个共享的mshtml.dll)。WebBrowser控件确实默认为“兼容性视图”浏览器模式,这意味着默认的文档模式为IE7。这是一篇有关此内容的详细信息:blogs.msdn.com/.../ more- ie8-extensibility-improvements.aspx。


托马斯对此回应:


@MarcSil(re:WebBrowser控件)


使用注册表项为WebControl选择文档模式的问题在于它整体上适用于应用程序。我为Google SketchUp编写了插件,您可以在其中使用WebDialog窗口来创建UI-它只是窗口中的WebBrowser控件。但这会导致问题,因为我想对WebBrowser控件的实例强制使用文档模式,而不是对SU的所有WebBrowser控件整体强制使用文档模式。


因此,我的问题是:如何为WebBrowser控件的每个实例控制文档模式?


慕容3067478
浏览 572回答 3
3回答

qq_花开花谢_0

您是否尝试过在HTML中设置<meta http-equiv="X-UA-Compatible" content="IE=9" />要么<meta http-equiv="X-UA-Compatible" content="IE=edge" />这意味着最新版本
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5