繁体   English   中英

在IE8中序列化空DOM元素时,JSON.stringfy函数返回“ null”

[英]JSON.stringfy function returns “null” when serializing empty DOM element in IE8

我的页面上有一个弹出对话框,其中包含20个字段。 可以修改20个字段,对对话框的任何更改都将更新到服务器。

仅在IE8中,当用户尝试清除字段并保存内容时,字段值设置为null

似乎使用IE8的本机JSON.stringfy序列化 DOM元素的值JSON.stringfy函数返回"null" (字符串)而不是""

演示: http : //jsfiddle.net/6VKzy/2/ [在IE8中打开]

有关博客的更多详细信息,

通过在IE8中启用本机JSON支持,用户现在可以利用内置的JSON.stringify和JSON.parse方法来将JScript值序列化和反序列化为JSON文本,反之亦然。 但是,IE8的本机JSON实现中存在一个已知问题,其中,如果用户尝试读取一个空DOM元素的值,并使用本机JSON对其进行序列化,则结果与用户在序列化“ “

http://blogs.msdn.com/b/jscript/archive/2009/06/23/serializing-the-value-of-empty-dom-elements-using-native-json-in-ie8.aspx

注意:这个问题是自我回答。

解决方法是使用如下检查器函数返回""而不是"null"

function(k, v) { return v === "" ? "" : v }

固定的DEMO: http : //jsfiddle.net/6VKzy/3/ [在IE8中打开以验证该修复程序]

博客中的更多详细信息和不同的修复方法,

这是IE8生产版本中的错误。 这里的问题是在DOM中使用特殊的编码来表示缺少的字符串值。 即使此特殊值与JScript文字“”的编码不同,但在整个JScript实现中,该值都被视为===到“”,除了JSON.stringify中的特定情况。

由于此特殊值仅源自对DOM对象的访问,因此一种解决方法是在可能返回一个DOM的每个DOM访问中显式审查它们。

http://blogs.msdn.com/b/jscript/archive/2009/06/23/serializing-the-value-of-empty-dom-elements-using-native-json-in-ie8.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM