transport.js和jquery冲突问题的解决方法_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(”);
};
*/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery
, 冲突
transport.js
transport.js 冲突、jquery transport、jquery.ajaxtransport、jquery no transport、transport jquery.js,以便于您获取更多的相关知识。

时间: 2024-11-17 20:13:54

transport.js和jquery冲突问题的解决方法_javascript技巧的相关文章

基于bootstrap-datetimepicker.js不支持IE8的快速解决方法_javascript技巧

实例如下: if (!Array.prototype.indexOf) Array.prototype.indexOf = function (elt /*, from*/) { var len = this.length >>> 0; var from = Number(arguments[1]) || 0; from = (from < 0) ? Math.ceil(from) : Math.floor(from); if (from < 0) from += len;

js中style.display=&quot;&quot;无效的解决方法_javascript技巧

本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多的操作,但如果我们style.display=""可能导致没有效果. 看下面一段代码: 复制代码 代码如下: <style>  #name  {      display:none;  } </style> </head> <body> &l

js ajaxfileupload.js上传报错的解决方法_javascript技巧

相信大家在工作中经常用到文件上传的操作,因为我是搞前端的,所以这里主要是介绍ajax在前端中的操作.代码我省略的比较多,直接拿js那里的 $.ajaxFileUpload({ url:'www.coding/mobi/file/uploadSingleFile.html',//处理图片脚本 secureuri :false, fileElementId :'image2',//file控件id.就是input type="file" id="image2" data

Js,alert出现乱码问题的解决方法_javascript技巧

前些天还可以正常使用的js文件,在添加了一些东西后,其中的alert()弹出提示框总是中文乱码,在网上看了很多,给出的答案基本上是加一个<meta http-equiv="Content-Type" content="text/html;charset=gb2312" /> 或者是将gb2312换成utf-8,我用多种方法测了很久还是没能解决这问题. 解决方法:最后终于在某个论坛的一个角落里发现了点东西,原来在html里面引用js文件时要指定字符集的编码

DOM操作原生js 的bug,使用jQuery 可以消除的解决方法_javascript技巧

js的 bug 类型:  Uncaught TypeError:Cannot set/read property 'xxx' of null 在进行DOM操作的时候比较容易发生这个错误,比如: 1.  document.getElementById('test1').style.display='none' 2.  document.getElementById('test1').onclick=function(){/*相关代码*/} 假如DOM中无此 test1对象,将会抛出上面的错误,发生

动态创建script在IE中缓存js文件时导致编码的解决方法_javascript技巧

先看下重现代码 1, gb2312.html 该文件编码为gb2312 复制代码 代码如下: <!DOCTYPE html> <html> <head> <title></title> <meta charset="gb2312"/> <style> p { color: red; } </style> </head> <body> <button onclic

js获取对象为null的解决方法_javascript技巧

页面上动态输出的数据,这是ajax获取的数据我要在页面上展示 复制代码 代码如下:     success:function(data){          var arr = data.split('_');          var numArr = arr[0].split(",");          var numStr = "";          if(numArr.length==undefined || numArr.length==0){    

js innerHTML 的一些问题的解决方法_javascript技巧

然而,你需要知道 innerHTML 有一些自身的问题:  1.当 HTML 字符串包含一个标记为 defer 的 script 标签(<script defer>-</script>)时,如 innerHTML 属性处理不当,在 Internet Explorer 上会引起脚本注入攻击.  2.设置 innerHTML 将会破坏现有的已注册了事件处理函数的 HTML 元素,会在某些浏览器上引起内存泄露的潜在危险.  还有几个其他次要的缺点,也值得一提的:  1.你不能得到刚刚创建

Ajax局部更新导致JS事件重复触发问题的解决方法_javascript技巧

如果在页面中包含一个ajax更新的列表,那么需要小心非动态更新部分的事件处理. 以带有公共工具栏的列表界面为例: | Menu1 | Menu2 ---------------------------------------------------------------------------- ID TITLE DESCRIPTION OPERATION 1 test1 hey test X - ... 2 test2 why not X - ... --------------------