7

我有一个简单的程序,我正在尝试将 kongregate 聊天加载到一个WebBrowser,但它不工作......

当我第一次启动它时,它导航到一个游戏,然后它给了我 4 Script Error,聊天就坐在那里说:“加入房间......”。我认为这不是浏览器设置的问题,因为它适用于 Internet Explorer。我的有什么问题WebBrowser吗?我让它在那里坐了几分钟,它仍然不起作用。我已将 suppressScriptErrors 设置为 true 和 false,但它仍然无法修复它。

仅供参考:我的程序没有做任何坏事,比如作弊、发送垃圾邮件或类似的事情,我只是想让网页显示出来,有时我希望能够复制一些东西,所以我放了一些TextBoxes到它的权利,所以我可以将它粘贴到聊天中,如果我不会发布一些东西......

4

1 回答 1

-1

这篇文章可以解决您的问题。Visual Studio 中的 WebBrowser 控件似乎默认以 IE7 模式启动。这就是为什么您会在控件中出现 javescript 错误,但在浏览器中却没有。我强烈建议您阅读链接到顶部的文章。幸运的是,有一个修复程序。以下代码取自另一个 stackoverflow 对间接解决您的问题的问题的回答。是那个链接,这是代码。

    string installkey = @"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
    string entryLabel = Path.GetFileName(Application.ExecutablePath);
    System.OperatingSystem osInfo = System.Environment.OSVersion;

    string version = osInfo.Version.Major.ToString() + '.' + osInfo.Version.Minor.ToString();
    uint editFlag = (uint)((version == "6.2") ? 0x2710 : 0x2328); // 6.2 = Windows 8 and therefore IE10

    RegistryKey existingSubKey = Registry.LocalMachine.OpenSubKey(installkey, false); // readonly key

    if (existingSubKey == null) {
        existingSubKey = Registry.LocalMachine.CreateSubKey(installkey, RegistryKeyPermissionCheck.Default); // readonly key
    }

    if (existingSubKey.GetValue(entryLabel) == null) {
        existingSubKey = Registry.LocalMachine.OpenSubKey(installkey, true); // writable key
        existingSubKey.SetValue(entryLabel, unchecked((int)editFlag), RegistryValueKind.DWord);
    }

此外,我在上面提到的文章说您也应该为您的应用程序创建一个 VS 主机进程的条目,否则它将无法在调试模式下工作。祝你好运,我希望这能解决你的问题!

于 2013-12-17T05:30:17.483 回答