json.js与ExtJS一起使用的问题
2009-05-24 17:29
846 查看
json.js和ExtJS都是有名的开源的东东,但是这两个有名的东东在一起使用时会出现一些问题,我就遇到一例,害我折腾了大半天,郁闷!现把问题和解决方法记下来以为后来者提个醒。
问题的出现:
当如下使用ExtJS
win = new Ext.Window({
title: '123',
width: 600,
height: 400,
closeAction: 'close', // 注意这里是close,也就是说当关闭窗口时,窗口会被销毁destroy
plain: true,
resizable : false,
layout: 'border',
items: [ grid ], // grid是一个Ext.grid.GridPanel
buttons: [{
text: '关闭',
handler: function(){
win.close();
win = null;
}
}]
});
并且页面引用了json.js。当执行win.close()或点击左上角的x按钮时会出现错误
---------------------------
错误
---------------------------
出现了运行时间错误。
是否要进行调试?
行: 142
错误: 'config.isTarget' 为空或不是对象
---------------------------
是(Y) 否(N)
---------------------------
解决办法:
打开json.js文件,到文件末尾,找到
if (!Object.prototype.toJSONString) {
Object.prototype.toJSONString = function (filter) {
return JSON.stringify(this, filter);
};
Object.prototype.parseJSON = function (filter) {
return JSON.parse(this, filter);
};
}
代码,注释掉,这样就不出问题了。
分析:
出现问题的原因在于ExtJS操作了json为对象增加的两个函数toJSONString和parseJSON,json.js的做法是好的,ExtJS的做法也是不错的,但是把他们放在一起就会打架,之所谓鱼与熊掌不可兼得啊,只好委屈一下json.js了,另外追究ExtJS的问题也是难度的,所以就遵循吃柿子的规则了。
在注掉那几行代码(见解决办法)后,我们再处理JSON时可能会多写一些代码,来个补救措施吧,呵呵
在json.js最后加上一下代码
function toJSON(obj, filter) {
if (typeof obj != 'string')
return JSON.stringify(obj, filter);
else
return JSON.parse(obj, filter);
}
以后不管是JSON对象到字符串,还是字符串到JSON对象,都可以使用toJSON函数搞。
问题的出现:
当如下使用ExtJS
win = new Ext.Window({
title: '123',
width: 600,
height: 400,
closeAction: 'close', // 注意这里是close,也就是说当关闭窗口时,窗口会被销毁destroy
plain: true,
resizable : false,
layout: 'border',
items: [ grid ], // grid是一个Ext.grid.GridPanel
buttons: [{
text: '关闭',
handler: function(){
win.close();
win = null;
}
}]
});
并且页面引用了json.js。当执行win.close()或点击左上角的x按钮时会出现错误
---------------------------
错误
---------------------------
出现了运行时间错误。
是否要进行调试?
行: 142
错误: 'config.isTarget' 为空或不是对象
---------------------------
是(Y) 否(N)
---------------------------
解决办法:
打开json.js文件,到文件末尾,找到
if (!Object.prototype.toJSONString) {
Object.prototype.toJSONString = function (filter) {
return JSON.stringify(this, filter);
};
Object.prototype.parseJSON = function (filter) {
return JSON.parse(this, filter);
};
}
代码,注释掉,这样就不出问题了。
分析:
出现问题的原因在于ExtJS操作了json为对象增加的两个函数toJSONString和parseJSON,json.js的做法是好的,ExtJS的做法也是不错的,但是把他们放在一起就会打架,之所谓鱼与熊掌不可兼得啊,只好委屈一下json.js了,另外追究ExtJS的问题也是难度的,所以就遵循吃柿子的规则了。
在注掉那几行代码(见解决办法)后,我们再处理JSON时可能会多写一些代码,来个补救措施吧,呵呵
在json.js最后加上一下代码
function toJSON(obj, filter) {
if (typeof obj != 'string')
return JSON.stringify(obj, filter);
else
return JSON.parse(obj, filter);
}
以后不管是JSON对象到字符串,还是字符串到JSON对象,都可以使用toJSON函数搞。
相关文章推荐
- json.js与ExtJS一起使用的问题
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- Extjs 使用fileText 文件上次后 无法解析后台返回的json问题
- 如何解决ecshop中jquery冲突?使用jquery.json.js代替transport.org.js中部份代码,完美解决问题。
- JS之——解决IE6、7、8使用JSON.stringify报JSON未定义错误的问题
- JSON与JS一起使用代码示例
- js中使用JSON的时候遇到的问题
- 关于chrome浏览器下使用js读取本地json文件时提示“Origin null is not allowed by Access-Control-Allow-Origin”问题
- ajax根据ID查询数据库并返回Json格式数据返回js,使用append显示到页面。判断json值为[]或者[[]]的问题。
- extjs使用一:extjs-base.js无法访问等等问题
- 关于使用ajax请求servletList转换Json抛的异常There is a cycle in the hierarchy!暨将List转换为JSONArray问题解决!
- 使用原生JS的AJAX读取json全过程
- Extjs使用extend(js继承)
- extjs JsonStore加载数据,Combobox只显示最后一项值问题
- ExtJs 前端接受后台的JSON数据的编码问题
- 遇到问题-----IE中js调用getjson二次点击失效
- 【JS】使用javascript将xml转为json
- Json 映射 的使用 及 JS 数组的使用
- jstree详解(解决jstree树的sort和move_node和drop drag一起使用时不能排序的问题)(附源码)
- PHP中使用了mcrypt_decrypt函数处理Json串后导致Json_decode返回null问题