C# ';JSON';是未定义的

C# ';JSON';是未定义的,c#,.net,json,webbrowser-control,C#,.net,Json,Webbrowser Control,我正试图将数据加载到c#中,但得到: 我认为这是因为webbrowser默认使用IE7(?),这可能与网站中的JS不兼容。我试图将注册表功能\u浏览器\u仿真更新为以强制网络浏览器使用IE9框架。但我还是会犯同样的错误 webbrowser是否为该任务提供了基本功能,或者是否有解决此问题的方法 编辑: 因此,当我打印webbrowser.version时,我得到:version:11.0.9600.16518。这是我的IE的当前版本。如果我打开IE11并导航到url,它会工作得很好。不确定we

我正试图将数据加载到c#中,但得到:

我认为这是因为webbrowser默认使用IE7(?),这可能与网站中的JS不兼容。我试图将注册表
功能\u浏览器\u仿真更新为
以强制
网络浏览器
使用IE9框架。但我还是会犯同样的错误

webbrowser是否为该任务提供了基本功能,或者是否有解决此问题的方法

编辑:

因此,当我打印
webbrowser.version
时,我得到:version:11.0.9600.16518。这是我的IE的当前版本。如果我打开IE11并导航到url,它会工作得很好。不确定
webbroswer
出现问题的原因

我尝试使用以下代码向网页中插入:

HtmlDocument doc = webBrowser1.Document;
            Console.WriteLine(doc);
            HtmlElement head = doc.GetElementsByTagName("head")[0];
            HtmlElement s = doc.CreateElement("script");
            s.SetAttribute("type", "text/javascript");
            s.SetAttribute("src", "http://192.168.1.23:10000/JSON-js-master/json2.js");
            head.AppendChild(s);

我尝试使用本地和外部IP引用主机文件。显然,当WebBrowser控件运行时,它在计算机上安装的IE版本中运行,但在IE7兼容模式下运行。尝试加载列出的链接需要更现代化的浏览器。事实上,您请求的页面需要IE10或更高版本

您确实需要更改注册表中的浏览器模拟设置,以便WebBrowser控制用户使用更现代的IE功能集:

正如你在问题中所说,登记册中需要调整的两个方面是:

HKEY\本地\计算机\软件\ Microsoft\Internet Explorer\Main\FeatureControl\FEATURE\浏览器\仿真

HKEY\本地\机器\软件\ Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE\浏览器\仿真

在这两个位置中的每一个位置,应用程序的进程名都包含一个DWORD值集,该值集指示兼容性级别。具体值可在“帮助”页面上找到。文件名是您的应用程序名“MyApplication1.exe”,或者如果您是在Visual Studio中运行,则是“MyApplication1.vshost.exe”


因为我安装了IE 11,所以我将浏览器模拟设置设置为11001,它对链接的网页有效。

哇,是的,我会说IE7太旧了!您可以使用其他浏览器吗?当您更新注册表时,您包含了流程的正确名称,对吗?WebBrowser控件是IE。它总是与您计算机上运行的IE版本相同。升级IE,您将升级控件。另外,直接使用浏览器试试这个网站,看看会发生什么。@JohnSaunders,我刚刚运行了一个WebBrowser控件,导航到尼克在问题中链接到的页面,我得到了与他相同的结果。点击IE中的链接成功。有趣的是,将IE置于兼容模式会导致与WebBrowser产生的问题非常相似的问题。@Nick,因为我安装了IE 11,所以我将浏览器模拟设置设置为11001,它就可以工作了。