日期:2014-05-16  浏览次数:20319 次

(累积3万错误--NO.1)jQueryUI中dialog设置属性为JSON对象,在IE6,7,8中的设置

对话框在浏览器中用的还是算比较多的,我选择了jQuery中的dialog;

在对dialog设置属性的时候,接受的是JSON对象。

function showdialog(){
	$('#fogetdialog').dialog({
		title:'密码找回',
		height:200,
		width:400,
		modal: true,
	}
	);
}

IE6,7,8中出错,显示“ 缺少标识符、字符串或数字”

网上找了下原因,结果是IE6,7,8不认识JSON对象,需要用eval转换。

试着这样解决了一下

function showdialog(){
	var jsonStr = '{"title":"密码找回","height":"200","width":"400","modal": "true"}';
	jsonStr = eval("(" + jsonStr + ")");
	console.log(jsonStr);
	console.log(jsonStr.title);
	$('#fogetdialog').dialog(jsonStr));
}

但是这样还是会出现问题,IE6,7,8中显示“缺少 ';'”

最后的解决方法

function showdialog(){
	$('#fogetdialog').dialog(eval("(" + '{"title":"密码找回","height":"200","width":"400","modal": "true"}' + ")"));
}

IE6 IE7 IE8(Q) 不支持 JSON 对象参考:http://www.w3help.org/zh-cn/causes/SJ9012#impacted_browsers