.net 设置webbrowser控件使用的IE版本

当我们在使用.net的Webbrowser控件时,发现webbrowser展示的内容和我们用浏览器展示的内容不一致,甚至出现:'JSON' is undefined.

原因是webbrowser使用的浏览器版本与我们使用的浏览器版本不一致,虽然在.net程序中调用webbrowser1.version时版本信息是最新的与你本地安装的IE浏览器版本一致,但是其实你的网站加载时并未使用最新的浏览器版本。

为了解决这个问题,需要在注册表中添加记录,用来关联应用程序和IE的版本,可以在如下两个目录下,New->DWORD(32 bit) Value, Value Name为你的应用程序名称,值为多少需要根据你想要使用的浏览器版本而定,版本信息对照表可参考:https://msdn.microsoft.com/en-us/library/ee330730.aspx#browser_emulation

例如我的程序名称为:

IPSRemoteShellDemo.vshost.exe(VS调试时使用) ,值为2af9,代表使用IE11

IPSRemoteShellDemo.exe ,值为2af9,代表使用IE11

请在如下两个注册表中都要添加记录。

HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerMainFeatureControlFEATURE_BROWSER_EMULATION

HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftInternet ExplorerMainFeatureControlFEATURE_BROWSER_EMULATION

详细信息可参考:

http://stackoverflow.com/questions/22285763/json-is-undefined

https://msdn.microsoft.com/en-us/library/ee330730.aspx#browser_emulation

 

原文地址:https://www.cnblogs.com/zhengshuangliang/p/4318508.html