transport.js和jquery冲突问题的解决方法

前端技术 2023/09/07 JavaScript

问题原因:/js/transport.js 文件
Object.prototype.toJSONString = function () {**************}
大概 580行到590行之间 这个句用于格式化json,他重写了object的结构,导致于js框架冲突,如果要解决需要把这段代码注释掉,然后用别的方式替换。

我是将所有用到*.toJSONString的地方,替换成一个函数,例如:
/js/common.js 29行
Ajax.call(‘flow.php?step=add_to_cart\', ‘goods=\' + goods.toJSONString, addToCartResponse, ‘POST\', ‘JSON\');

替换成:

Ajax.call(‘flow.php?step=add_to_cart\', ‘goods=\' + obj2str(goods), addToCartResponse, ‘POST\', ‘JSON\');
obj2str函数如下:

function obj2str(o){
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 “null”;
else if(!o.sort){
for(var i in o)
r.push(“\\”\"+i+”\\”\"+”:”+obj2str(o[i]))
r=”{“+r.join()+”}”
}else{
for(var i =0;i<o.length;i++)
r.push(obj2str(o[i]))
r=”[\"+r.join()+\"]”
}
return r;
}
return o.toString();
}

大概这样就可以了,可能还有些脚步错误需要处理,您自己体会下 , 这只是个解决方法,并不一定适用您的网站。

我注释了下面这一段

/*
Object.prototype.toJSONString = function () {
……
// Join all of the fragments together and return.

a.push(‘}\');
return a.join(”);
};
*/

本文地址:https://www.stayed.cn/item/18541

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。