transport.js和jquery冲突问题的解决方法
程序员文章站
2023-10-28 15:31:28
问题原因:/js/transport.js 文件
object.prototype.tojsonstring = function () {**************}
大概...
问题原因:/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(”); }; */
推荐阅读
-
解决3.01版的jquery.form.js中文乱码问题的解决方法
-
transport.js和jquery冲突问题的解决方法
-
jQuery.ajax向后台传递数组问题的解决方法
-
JS中双击和单击事件冲突的解决方法
-
jquery.ajax的url中传递中文乱码问题的解决方法
-
win10专业版更新升级KB4025342和KB4025339蓝屏/更新失败等问题的解决方法
-
jQuery中ajax的使用与缓存问题的解决方法
-
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
-
解决jQuery动态获取手机屏幕高和宽的问题
-
nodejs和C语言插入mysql数据库乱码问题的解决方法