日期:2014-05-16 浏览次数:20336 次
ECShop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的。
但恰恰的,在封装JSON各种方法的同时对object的模型进行了重写,这个就跟jQuery冲突了。因为众所周知的,jQuery对各种JavaScript对象进行了扩展。
这一切其实都很容易理解,各有各的理由十分自然,但头痛和无奈的就变得在我们这些使用者身上了。在ECShop论坛上原来也有很多朋友提出了这个问题,也提出了各种各样的方法,我尝试了一些,不好或者甚至无用,所以只好自己动手了。
解决思路大概就是屏蔽ECshop扩展的toJSONString方法,用别的函数代替。
为了照顾下小菜们,就写详细点吧。
1,首先复制一份 transport.js 改名为 transport.org.js 提供给后台使用
2,屏蔽掉transport.js里的toJSON功能 行数大概有497-737行之间
修改352行为:
1. legalParams = “JSON=” + $.toJSON(params);
复制代码
修改408行为:
1. result = $.evalJSON(result);
复制代码
3,修改index.js文件44行改为:
1. var res = $.evalJSON(result);
复制代码
4,修改common.js文件
第34行改为:
1. Ajax.call(‘flow.php?step=add_to_cart’, ‘goods=’ + $.toJSON(goods), addToCartResponse, ‘POST’, ‘JSON’);
复制代码