我正在使用自动化(即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控件的每个实例控制文档模式?
慕码人8056858
相关分类