我有一个简单的程序,我正在尝试将kongregate聊天加载到WebBrowser中,但它无法正常工作……
当我第一次启动时,它导航到一个游戏,然后它给了我4个脚本错误,聊天就在那里说:“加入房间……”.我不认为这是浏览器设置的问题,因为它适用于Internet Explorer.有什么东西搞砸了我的WebBrowser吗?我让它坐在那里几分钟,它仍然无法正常工作.我已将suppressScriptErrors设置为true和false,但仍然无法修复它.
仅供参考:我没有对我的程序做任何不好的事情,比如作弊,或者发送垃圾邮件,或类似的东西,我只是希望网页出现,有时候我希望能够复制东西,所以我放了一些TextBoxes在它的右侧,所以我可以将它粘贴到聊天中,如果我不发布一些东西……
解决方法
This文章解决了您的问题.默认情况下,Visual Studio中的WebBrowser控件似乎以IE7模式启动.这就是为什么你用控件获得javescript错误但不在你的浏览器中.我强烈建议你阅读顶部链接的文章.幸运的是,有一个修复.以下代码取自另一个stackoverflow对一个间接解决您的问题的问题的答案.
Here是那个链接,这是代码.
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主机进程创建一个条目,否则它将无法在调试模式下工作.祝你好运,我希望这能解决你的问题!