我正在使用自动化(即COM自动化)在Internet Explorer(9)中显示一些HTML:
ie = CoInternetExplorer.Create;
ie.Navigate2("about:blank");
webDocument = ie.Document;
webDocument.Write(szSourceHTML);
webDocument.Close();
ie.Visible = True;
Run Code Online (Sandbox Code Playgroud)
出现Internet Explorer,显示我的html,其开头为:
<!DOCTYPE html>
<HTML>
<HEAD>
...
Run Code Online (Sandbox Code Playgroud)
注意: html5标准模式选择加入doctype
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;
}
Run Code Online (Sandbox Code Playgroud)
编辑:一个更详细,更不易理解或可读的代码示例,这无助于进一步提出问题可能是:
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(); …Run Code Online (Sandbox Code Playgroud) 由于TWebbrowser在IE7兼容模式下运行,我遇到了TWebbrowser的Javascript错误.
有没有办法防止这种情况,只是让它在IE9模式下运行?
这适用于Visual Studio Express 2012中的Desktop C#应用程序.
我使用webBrowser控件登录到各种网站,但发现一些没有响应和超时.
我怀疑它可能是webBrowser控件固有地运行IE7但发现网站在运行IE7作为本机浏览器的旧PC上运行良好.我是否需要设置webBrowser中的某些内容以允许诸如下面代码中的网站处理响应?
下面的代码导航到我遇到问题的网站.如果在本机浏览器中输入Login和Password的任何值,它会立即响应并抛出错误,但在webBrowser中它会在那里等待响应并最终超时.
任何帮助将不胜感激!
米克
namespace WindowsFormsApplication11
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate(
"https://www.my.telstra.com.au/myaccount/home?red=/myaccount/");
}
}
}
Run Code Online (Sandbox Code Playgroud) 您好我的webbrowser控件有问题.
页面没有像ie那样显示
和
正如您所看到的顶级菜单不起作用,许多网站都出现了问题