我最近升级到IE9-测试阶段。现在,在我的。网(3.5)WinForm用我想使用 WebBrowser 控制。

所以我的问题是,是否 WebBrowser 控制将表现出的所有属性和职能IE9?

我担心的是,我要呈现一些SVG图形。

有帮助吗?

解决方案

该IE9"版本"的网页浏览器的控制,如IE8版本,实际上是几个浏览器中的一种。不像IE8版本,你有一个小小的更多控制所呈现的模式内部网页可通过改变doctype.当然,要改变的浏览器模式你必须设置你的注册表,像早期的答案。这是一个注册的文件片段FEATURE_BROWSER_EMULATION:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"contoso.exe"=dword:00002328

这里是全套代码:

  • 9999(0x270F) -Internet Explorer9.网页显示在IE9 标准模式,不管 !DOCTYPE指令。
  • 9000(0x2328) -Internet Explorer9.网页包含基于标准的!DOCTYPE 指令显示在IE9模式。
  • 8888(0x22B8) -网页都是 显示在IE8标准模式, 不管的!DOCTYPE指令。
  • 8000(0x1F40) -网页含有 基于标准的!DOCTYPE指令 都显示在IE8模式。
  • 7000(0x1B58) -网页含有 基于标准的!DOCTYPE指令 都显示在IE7的标准模式。

完整的文档:

http://msdn.microsoft.com/en-us/library/ee330730%28VS.85%29.aspx#browser_emulation

其他提示

WebBrowser控件将使用您已经安装任何版本的IE,但由于兼容性原因,它会默认呈现在IE7标准模式的页面。

如果你想利用新的IE9的功能,你应该添加meta标签<meta http-equiv="X-UA-Compatible" content="IE=9" >你的HTML页面的<head>标签内。

这个元标记必须之前的任何链接添加CSS,JavaScript文件等,同时也是在<head>工作虽然正常(只有其他<meta>标签或<title>标签前,可以来)。

另一种方法是一个注册表项添加到:

  

HKLM> SOFTWARE>微软>的Internet Explorer>主> FeatureControl> FEATURE_BROWSER_EMULATION

,并在那里加上“myApplicationName.exe”具有值“9000”以迫使web浏览器控件在IE9模式显示的页面。虽然有其他值,您可以使用太多太注意,这些文档是不是它似乎并不可能得到一个页面中,你使用任何值IE 8模式呈现完全准确。

添加在HKCU注册表项以相同的路径,而不是HKLM的也将工作 - 这是因为写入HKLM有用,需要管理员权限,其中作为HKCU没有。

感谢善良我发现这个。以下是极为重要的:

<meta http-equiv="X-UA-Compatible" content="IE=9" >

如果没有这个,没有任何的报道我一直发电机会工作后IE9安装尽管IE8已经很好工作。他们会正确显示在Web浏览器的控制,但仍然会有丢失的信件,抬高了白色的空间,等等,当我打电话.PRINT()。他们只是基本的HTML应该能够即使在马赛克渲染。呵不知道为什么IE7兼容模式就要失控。值得注意的是,你可以.PRINT()在同一个页面5次,每次都被它缺少不同的字母。它甚至会延续到PDF输出,所以它绝对是浏览器。

有关64位Windows的说明,这似乎绊倒了几个人。 如果您的应用64位Windows下运行,你可能需要设置下的DWORD [HKLM \ SOFTWARE \ Wow6432Node \微软\的Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION]代替。

我知道这个线程是老,已经有全面的解答。

以防万一你不知道这一点:

<meta http-equiv="X-UA-Compatible" content="IE=edge" >

您不必硬编码IE版本号

<meta http-equiv="X-UA-Compatible" content="IE=9" >

我完全提供的解决方案达成一致,但我觉得有点澄清是非常重要的,我认为,可能是必要的。

对于每个流程(也阅读:vshost.exe,yourWinformApplication.exe.svchost,或者您application.exe的名称),将需要添加一个DWORD所提供的价值,在我的情况,我离开9000(十进制)在应用程序的名称和运行平稳和无差错的脚本。

最常见的错误是认为这是必须加贴“contoso.exe” AS IS,并认为它所有的工作!

是的,你已经安装任何版本的IE浏览器控件的使用。当然,这意味着,如果与IE 8的机器上运行应用程序,则IE 9设有你取决于将不可用。

我来到这个解决方案并没有为我工作!因为我用64位我不得不更换注册表:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

取而代之的是一个大约每个人都会谈:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

我喜欢在其设定的注册表设置为自己的应用下面的(C#)代码。不知道这是否会在安装后削减它虽然如果需要的权限。对我来说,它解决了一个问题,在WPF WebBrowser控件内不被使用的WebSocket。

C#web浏览器调用Ajax

我有同样的问题,以及书记官处的答案在这里没有工作。

我有一个浏览器控制在新版本的我的程序的工作现在XP,未能在窗7(64位)。旧的版本曾在两XP和Windows7。

该网页显示在浏览器中使用了一些奇怪的插件显示出老SVG地图(我认为它是一个Java程序).

原来的问题是关系到DEP保护在Windows7。

旧版本的dotnet2不设置DEP需要的标志,在可执行软件,但从dotnet2,SP1起它做的(是的,编制的行为,因此运行时行为的exe改变取决于哪个机编制的,漂亮...).

这是记录在一个MSDN的博客 NXCOMPAT和C#编译器.引用: 这无疑会惊喜的几个开发商...下载一个框架的业务组,重新编译、运行程序,而你现在越来越IP_ON_HEAP例外情况。

添加以下的职位建立在Visual Studio,原DEP关于exe,一切工作预期:

all "$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"

关于白鹰被接受的答案。我只是想增加一点手经验。只是想增加一个意见,但所以抱怨它的时间太长。

基本上,没有即9安装,登记册开关FEATURE_BROWSER_EMULATION不会在所有的工作。

例如,我自己的经验,今天,我正试图获得。净件网络控件的工作与10模式,因为一个html我想要呈现的不会的工作。netControl下VS2012,甚至不是工作时我载html IE8直接,仍然css不会呈现正常(甚至之后我说允许阻止的内容)。但我已经测试了相同html"确定"与10个朋友赢得8机。这就是为什么我想到设置。净件网络控件,即10模式,但是不断的失败...

现在我想这是无论如何不能我赢了7台机器只有安装ie8,所以不管其价值是我设置的FEATURE_BROWSER_EMULATION开关(价值IE9,10internet explorer11),它只是不在所有的工作!

然后我下载,安装即10月,我赢得7个机。它仍然不会的工作,然后我加入了FEATURE_BROWSER_EMULATION,它开始工作!

我也注意到不管其价值,我设定,即使设置价值0默认的仍然是使用即10模式,它仍然对我的作品。

所以总的来说, 如果你有即X安装,但你想要你的.净件网络控件下工作,即(X+N)N>0modo, 两件事 你需要做的:

  1. 转到MS网站和下载,安装即(X+N)计算机上 你将需要重新启动后的安装。

  2. 适用的白鹰的答复。

基本上:以控制的价值,这个特点通过使用注册处,加上的名字你可执行的文件下设定并设置价值相匹配所需的设置。

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
   SOFTWARE
      Microsoft
         Internet Explorer
            Main
               FeatureControl
                  FEATURE_BROWSER_EMULATION
                     contoso.exe = (DWORD) 00009000

Windows Internet Explorer8和后。该FEATURE_BROWSER_EMULATION特征定义的默认仿真模式为互联网资源管理器,并支持以下的价值观。

值说明

  • 11001(0x2AF9Internet Explorer11.网页显示在internet explorer11 边缘模式,而不管的!DOCTYPE指令。

    11000(0x2AF8)internet explorer11.网页包含基于标准的!DOCTYPE 指令显示在internet explorer11边模式。默认值internet explorer11.

    10001(0x2711)Internet Explorer10.网页显示,在10 标准模式,而不管的!DOCTYPE指令。

    10000(0x02710)Internet Explorer10.网页包含有 基于标准的!DOCTYPE指令显示,在10标准 模式。默认值Internet Explorer10.

    9999(0x270F)Internet Explorer9.网页显示 IE9标准模式,而不管的!DOCTYPE指令。

    9000(0x2328)Internet Explorer9.网页包含有 基于标准的!DOCTYPE指令显示在IE9模式。默认值Internet Explorer9.

    重要的是在互联网浏览器10、网页含有 基于标准的!DOCTYPE指令显示,在10标准 模式。

    8888(0x22B8)的网页显示在IE8标准模式, 不管的!DOCTYPE指令。

    8000(0x1F40)网页含有基于标准的!DOCTYPE指令 都显示在IE8模式。默认值Internet Explorer8 重要的是在互联网浏览器10、网页含有 基于标准的!DOCTYPE指令显示,在10标准 模式。

    7000(0x1B58)网页含有基于标准的!DOCTYPE指令 都显示在IE7的标准模式。默认值应用程序 主办的网页浏览器的控制。

全ref 在这里,

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top