B. *_*non 5 .net c# webbrowser-control winforms internet-explorer-11
我创建了一个使用WebBrowser控件的Winforms应用程序; 我动态分配它的Uri.它工作正常一段时间,但现在我得到这个消息:
您似乎使用的是不受支持的浏览器.较旧的浏览器可能会使您的安全性受到威胁,速度很慢,并且无法使用较新的Google地图功能.要访问Google地图,您需要更新到现代浏览器.
最后两个单词是一个链接,在该链接之后,我看到:
您目前正在使用... IE 11
所以,好吧,WebBrowser组件使用IE 11; 我怎么能改变呢?
我的机器设置为使用Chrome作为其浏览器; 也许控件应该使用您当前的浏览器?我不知道这是否可行/可行.
好的,我愿意试试Reza的建议.但是当我导航到regedit中的指定位置,并在右窗格中右键单击以添加新条目时,它有三个选项:
键,字符串值,二进制值
我认为字符串值是".exe"字符串,二进制值是"双字"值,但"键"值应该是多少?
Rez*_*aei 15
该WebBrowser控件使用安装在您的操作系统上的相同Internet Explorer版本,但默认情况下它不使用最新的文档模式,并以兼容模式显示内容.
作为一种症状,您可以在Internet Explorer中看到该站点,但WebBrowser控件未正确显示该站点,对于某些站点,它也显示脚本错误.
解
您可以告诉WebBrowser控件在没有兼容模式的情况下使用最新的文档模式WebBrowser.您可以按照此处的说明使用注册表禁用设置.
这是我使用的设置.我应用了设置11001以使其工作:
using (var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
@"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION",
true))
{
key.SetValue(Application.ExecutablePath, 11001, Microsoft.Win32.RegistryValueKind.DWord);
key.Close();
}
Run Code Online (Sandbox Code Playgroud)
这个值:
Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
Run Code Online (Sandbox Code Playgroud)
别忘了vshost.exe.如果您在Visual Studio中运行程序,则需要它.
它使浏览器控制使用,HKEY_CURRENT_USER因此无论声明的!DOCTYPE指令如何,网页都以IE11边缘模式显示.未能声明!DOCTYPE指令会导致页面加载到Quirks中.
要创建条目,请右键单击右窗格的空白区域,然后在选择dword值后出现的窗口中,选择十六进制并输入2af9:
在我的应用程序嵌入式自定义协议的情况下,我将只允许浏览应用程序提供的页面,而不允许外部的内容,所以我想跳过保存到Windows注册表.当我按照Reza Aghaei的回答进行测试后发现您可以在内容页面中更改兼容模式.这将省略配置注册表项的需要,但您必须将其添加到每个页面.
要更改页面的兼容模式,必须为其添加元标记以供呈现引擎应用:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
</head>
<body>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)