ecshop 兼容jquery 最完美的解决方案
原因分析:
在transport.js文件中,大概 580行到590行之间,这个句用于格式化json,他重写了object的结构,导致于js框架冲突。冲突的原因是jquery给一个object增加了很多元素,那么在Object.prototype.toJSONString = function () 这个函数中 for (k in this) 语句中进行了无数次的循环,导致网页很卡,并且在IE中会报错。
解决方案 我们最完美的解决方案是,用到jquery的页面就用jquery 否则 保持原来的照常可以用
1. 修改transport.js文件在文件最末尾添加 一个方法 代码如下
/* *
* 修正json.prototype信息
*/
function obj2str(o){
// 兼容 jquery
// 先删除 ecshop 的 跟jquery 冲突对象
//delete Object.prototype.toJSONString;
var r = [];
if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
if(typeof o =="undefined") return "undefined";
if(typeof o == "object"){
if(o===null) return &#