Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ext js获取IE8中的运行时错误_Javascript_Extjs_Internet Explorer 8_Runtime Error - Fatal编程技术网

Javascript 使用ext js获取IE8中的运行时错误

Javascript 使用ext js获取IE8中的运行时错误,javascript,extjs,internet-explorer-8,runtime-error,Javascript,Extjs,Internet Explorer 8,Runtime Error,我在以下代码中遇到一个错误,该代码在除IE8(未经IE9检查)之外的所有浏览器中都能完美运行: 我得到JavaScript运行时错误,即“语法错误” 此外,在其他许多行中,我也遇到了不同类型的运行时错误,因为我的应用程序没有按预期运行。 (我使用的是ExtJS3.3.1) 请帮我解决这个问题。。。 非常感谢 (还想知道ext js与IE8兼容吗?)使用eval解析JSON不好的原因有很多。如上文所述: eval函数非常快。但是,它可以编译和执行 任何JavaScript程序,因此可能存在安全问题

我在以下代码中遇到一个错误,该代码在除IE8(未经IE9检查)之外的所有浏览器中都能完美运行:

我得到JavaScript运行时错误,即“语法错误”

此外,在其他许多行中,我也遇到了不同类型的运行时错误,因为我的应用程序没有按预期运行。 (我使用的是ExtJS3.3.1) 请帮我解决这个问题。。。 非常感谢


(还想知道ext js与IE8兼容吗?)

使用eval解析JSON不好的原因有很多。如上文所述:

eval函数非常快。但是,它可以编译和执行 任何JavaScript程序,因此可能存在安全问题。使用 当来源可信且有能力时,会显示eval。太多了 使用JSON解析器更安全。在通过XMLHttpRequest的web应用程序中, 仅允许与提供以下信息的同一来源进行通信: 页面,因此它是可信的。但它可能无法胜任。如果服务器 JSON编码不严格,或者如果不严格 验证它的所有输入,然后它可以传递无效的JSON文本 那可能带有危险的剧本。eval函数将 执行脚本,释放其恶意

因此,您需要使用JSON解析器——同样,JSON.org也提供了JSON解析器,以及jQuery和extjs等框架中的JSON解析器——有关更多信息,请参见这个so问题(包括答案中的示例):

这对我有用


来源:

为什么不使用ExtJS提供的解析器?在ExtJS 3中,您应该能够执行以下操作:

jsonObject = Ext.decode(json);

这是类
Ext.util.JSON
中的
decode
方法的简写方法。该方法还采用另一个布尔参数,以确保在json错误时返回null

许多可能的错误,我遇到的一个是从服务器发送的json结构。如果出现错误,例如“逗号”、““{”“}”或“[”“]”的过多或不足,有时甚至是Ext.decode(json);不起作用。 这是因为我们无法识别代码中的某些错误,像FF这样的智能浏览器不会为此大喊大叫

在这种情况下,您可以通过直接将JSON字符串与Ext.data.JsonStore关联来尝试使用它


您可以在这里找到合适的店铺

谢谢您的回复。。但是我在我的所有应用程序中都使用了ext,不可能更改所有代码并用另一个解析器替换它。还有其他选择吗???就像我说的——extjs确实有一个——请参阅我链接的问题以获取示例。谢谢你的回答。但是我在下面给出的更改对我有效,但是我已经在使用
jsonObject=Ext.decode(json)在我的代码中…这只是重复你的问题?不。看到“而不是”啊-微妙:错过了。但我不知道为什么这会有不同<代码>eval
仍然是解析JSON的一种危险方式(请参阅我的原始答案)。。我会按照你的要求设法找到另一条路。再次感谢。。。!!!
doDecode = function(json){
            return eval ("(" + json + ')');  
jsonObject = Ext.decode(json);