admin管理员组

文章数量:1532174

2024年1月14日发(作者:)

上图的程序是一个测试程序,仅包含一个Web,这个程序的名称是”内嵌浏览器.exe”。可以发现,虽然同为Trident内核,但在Web控件中使用的内核版本却与IE不一样,这让我感到疑惑。因为我要登录的页面是针对IE8以上版本开发的,因此我需要尝试让程序内的Web以IE8的内核登录网页。

在网上找了一些资料后,我发现可以通过下面这个办法来解决:

1、在开始菜单内输入“”,进入注册表编辑器

2、找到注册表项:HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet

ExplorerMAINFeatureControlFEATURE_BROWSER_EMULATION

3、在右侧空白区域内单击鼠标右键,点击【新建】→【DWORD(32-位)值】

4、新建的项取名为”内嵌浏览器.exe”,编辑值时,选择基数“十进制”,填写数值数据,这里填写8888

5、这个时候再进入Debug目录下生成好的”内嵌浏览器.exe”,可以看到登录的内核版本变成IE8了!

需要注意的是,之前Web使用IE7内核的原因,就是.NET中的Web控件默认使用了IE7兼容性模式来浏览网页。

一一一一一一一一一分割线一一一一一一一一一

上面这个方法依靠修改注册表来完成Web使用内核的变更,不过光知道新建一个注册表项并把值设置为“8888”还远远不够,本着“知其然还要知其所以然”的想法,我查阅了

这个功能是用来定义IE默认的仿真模式。

这个功能在注册表中的位置如下:

7000 (0x1B58)

Webpages containing standards-based !DOCTYPE directives are displayed in IE7

Standards mode. Default value for applications hosting the WebBrowser

Control.

包含标准!DOCTYPE指令的页面将会以IE7兼容模式打开。WebBrowser控件的默认值。

8000 (0x1F40)

Webpages containing standards-based !DOCTYPE directives are displayed in IE8

mode. Default value for Internet Explorer 8

Important In Internet Explorer 10, Webpages containing

standards-based !DOCTYPE directives are displayed in IE10 Standards mode.

包含标准!DOCTYPE指令的页面将会以IE8兼容模式打开,IE8浏览器的默认值。对于IE10来说,包含标准!DOCTYPE指令的页面会以IE10兼容模式打开。

8888 (0x22B8)

Webpages are displayed in IE8 Standards mode, regardless of the

declared !DOCTYPE directive. Failing to declare a !DOCTYPE directive causes the

page to load in Quirks.

无论是否声明!DOCTYPE指令,页面以IE8兼容模式打开。对于未正确声明!DOCTYPE指令的页面,将会以怪异模式(quirks mode)加载。

9000 (0x2328)

Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are

displayed in IE9 mode. Default value for Internet Explorer 9.

Important In Internet Explorer 10, Webpages containing

standards-based !DOCTYPE directives are displayed in IE10 Standards mode.

IE9,包含标准!DOCTYPE指令的页面将会以IE9兼容模式打开,IE9浏览器的默认值。对于IE10来说,包含标准!DOCTYPE指令的页面会以IE10兼容模式打开。

9999 (0x270F)

Windows Internet Explorer 9. Webpages are displayed in IE9 Standards mode,

regardless of the declared !DOCTYPE directive. Failing to declare a !DOCTYPE

directive causes the page to load in Quirks.

IE9,无论是否声明!DOCTYPE指令,页面以IE9兼容模式打开。对于未正确声明!DOCTYPE指令的页面,将会以怪异模式(quirks mode)加载。

10000 (0x02710)

Internet Explorer 10. Webpages containing standards-based !DOCTYPE directives

are displayed in IE10 Standards mode. Default value for Internet Explorer 10.

IE10,包含标准!DOCTYPE指令的页面将会以IE10兼容模式打开,IE10浏览器的默认值。

10001 (0x2711)

Internet Explorer 10. Webpages are displayed in IE10 Standards mode, regardless of

the !DOCTYPE directive.

IE10,无论是否声明!DOCTYPE指令,页面以IE10兼容模式打开。

11001 (0x2AF9)

IE11. Webpages containing standards-based !DOCTYPE directives are displayed in

IE11 edge mode. Default value for IE11.

IE11,包含标准!DOCTYPE指令的页面将会以IE11兼容模式打开,IE11浏览器的默认值。

11000 (0x2AF8)

Internet Explorer 11. Webpages are displayed in IE11 edge mode, regardless of the

declared !DOCTYPE directive. Failing to declare a !DOCTYPE directive causes the

page to load in Quirks.

IE11,无论是否声明!DOCTYPE指令,页面将会以IE11的edge模式打开。对于未正确声明!DOCTYPE指令的页面,将会以怪异模式(quirks mode)加载。

END

本文标签: 注册表模式指令内核兼容