Ошибка JavaScript в .NET WebBrowser Контроль над виртуальной машиной - PullRequest
0 голосов
/ 19 июня 2019

У меня есть приложение, которое использует элемент управления .NET WebBrowser.Он загружает страницу, которая использует функцию javascript, для которой требуется как минимум IE 10. По умолчанию элемент управления WebBrowser использует IE 7.

Страница содержит метатег <meta http-equiv="X-UA-Compatible" content="IE=edge">.

При запуске приложения на физической машине под управлением Windows 7 или Windows 10 страница загружается очень хорошо, поэтому я знаю, что тег meta эффективен.

Однако работает в среде VDI / VMс Windows Server 2012 страница загружается не полностью.Цвет фона загружается из CSS, но не из-за ошибки javacript.

Есть ли что-либо в среде VDI / VM, которая может помешать работе javascript в элементе управления .NET WebBrowser или привести к тому, что он не будет соблюдатьтег meta?

1 Ответ

0 голосов
/ 19 июня 2019

Попробуйте этот код в форме загрузки события

        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);
...