我有一个使用.NET WebBrowser控件的应用程序。它正在加载使用至少需要IE 10的javascript功能的页面。默认情况下,WebBrowser控件使用IE 7。
该页面确实包含元标记<meta http-equiv="X-UA-Compatible" content="IE=edge">
。
在运行Windows 7或Windows 10的物理计算机上运行应用程序时,页面加载正常,因此我知道meta
标签是有效的。
但是,在Windows Server 2012的VDI / VM环境中运行时,页面无法完全加载。从CSS加载背景颜色,但由于javacript错误而没有其他内容。
关于VDI / VM环境,是否有可能干扰.NET WebBrowser控件中运行的javascript或导致其不遵守meta
标签的情况?
答案 0 :(得分:0)
在表单加载事件中尝试此代码
int BrowserVer, RegVal;
// get the installed IE version
using (WebBrowser Wb = new WebBrowser())
BrowserVer = Wb.Version.Major;
// set the appropriate IE version
if (BrowserVer >= 11)
RegVal = 11001;
else if (BrowserVer == 10)
RegVal = 10001;
else if (BrowserVer == 9)
RegVal = 9999;
else if (BrowserVer == 8)
RegVal = 8888;
else
RegVal = 7000;
// set the actual key
using (RegistryKey Key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKeyPermissionCheck.ReadWriteSubTree))
if (Key.GetValue(System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe") == null)
Key.SetValue(System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe", RegVal, RegistryValueKind.DWord);