.NET WebBrowser对VM的控制中的JavaScript错误

时间:2019-06-18 21:08:41

标签: c# html .net webbrowser-control vmware

我有一个使用.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标签的情况?

1 个答案:

答案 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);