当我们在使用.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_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
详细信息可参考:
http://*.com/questions/22285763/json-is-undefined
https://msdn.microsoft.com/en-us/library/ee330730.aspx#browser_emulation