终于,今天把ecshop下的jquery问题彻底解决了。下面附上方法,建议都新建一群文件名为 *_jq.js的文件,如transpor.js我都改成transpor_jq.js,用来识别这是用js的json写的!
1. 在transpor.js中去掉ec中重写json的方法:
约在450 到 735行间,看到注释有 “json.js 2007-03-06” 的地方就干掉他,如果发现有 *.prototype.toJSONString 类似的函数,总之在这段代码区间,发现prototype重写方法就干掉!
2. 引入jquery文件:
{insert_scripts files=’jquery.js,jquery.json-1.3.js’} 必须保证这段代码是在其他js前调用的!
3. 替换ecshop原来用到转json数据的代码:
替换 .toJSONString() 为 $.toJSON()
替换 .parseJSON() 为 $.evalJSON()
解决范例:
a.在商品浏览页,用户评论这里:
Ajax.call(‘comment.php’, ‘cmt=’ + cmt.toJSONString(), commentResponse, ‘POST’, ‘JSON’);
替换为
Ajax.call(‘comment.php’, ‘cmt=’ + $.toJSON(cmt), commentResponse, ‘POST’, ‘JSON’);
b.index.js 里
var res = result.parseJSON();
替换为
var res = $.evalJSON(result);
可能遇到的问题:
1. 如果遇到 transport.js/run() undified 弹窗报错,那么你需要在页面中加入这个代码:
<script type=”text/javascript”>
var process_request = “{$lang.process_request}”;
</script>