ecshop兼容jquery


ecshop的transport.js文件和Jquery是冲突的,两个文件不能同时调用,现给出以下完美解决方案:

原因分析:
在transport.js文件中,大概 587行到645行之间,这个句用于格式化json,他重写了 object的结构,导致于js框架冲突。
解决方案:
根本的解决办法是不用transport.js中的json功能,那么就要有一个相同的功能来代替它,这里我选用json2.js。首先要把transport.js中的json功能删除,
大概 587行到645行之间 ,然后找到legalParams = "JSON=" + params.toJSONString(); 把这一行改成legalParams = "JSON=" + JSON.stringify(params); 。由于实现json功能的函数有区别,所以要麻烦改掉原ecshop中各个地方用到的toJSONString()函数。
解决步骤:
1. 下载json2.js文件
2. page_header.lbi 中添加 {insert_scripts files='jquery.js,json2.js'}
3. 在所有的JS中。
替换 *.toJSONString() 为 JSON.stringify(*)
替换 *.parseJSON() 为 $.parseJSON(*),此条语句可以不替换
解决范例:
1.在商品浏览页,用户评论这里:
Ajax.call('comment.php', 'cmt=' + cmt.toJSONString(), commentResponse, 'POST', 'JSON');
替换为
Ajax.call('comment.php', 'cmt=' + JSON.stringify(cmt), commentResponse, 'POST', 'JSON');
2.index.js 里
var res = result.parseJSON();
替换为
var res = $.parseJSON(result);

 

你可能感兴趣的:(jquery,json,Ajax,框架,PHP)