完美解决ecshop和jquery冲突(方法二)
思韵闪耀
2013-11-11
0

1、加入JSON2.js文件 
原因很简单,transport修改Object是为了加入支持JSON的方法。所以我这里用JSON官网在javascript语言上提供的 json2.js支持具体下载地址http://www.json.org/json2.js 

2、修改transport.js 

2.1 注释掉重写object的方法,具体搜索 
Js代码

 

  • if( ! Object.prototype.toJSONString) {
     


if ( ! Object.prototype.toJSONString) {
这一段代码,然后把里面的内容全部注释掉。(参考:注释掉496-737行) 

2.2 加入新的JSON支持方法 
Js代码

 

  • function objToJSONString(obj, filter){
  •     return JSON.stringify(obj, filter);
  • }
  •  
  • function parseObjectToJSON(object, filter){
  •     return JSON.parse(object, filter);
  • }
     


function objToJSONString(obj, filter){ return JSON.stringify(obj, filter);}function parseObjectToJSON(object, filter){    return JSON.parse(object, filter);}

也可以看到其实都很简单,都是调用json2.js里面提供的方法,有人觉得不必在这里添加直接调用也可以,但我还是建议做这样的一个适配器在这,因为容易容易表明用意。 

2.3 修正AJAX方法 

2.3.1 在transport.js搜索params.toJSONString() 改为 objToJSONString(params)

2.3.2 继续在transport.js搜索result.parseJSON() 改为 parseObjectToJSON(result)(具体在408行左右) 

3、修复旧JSON调用地方 

简单来说就是把所有*.toJSONString() 的调用改为用objToJSONString(*),而*.parseJSON()改为parseObjectToJSON(*)。
例如: common.js里面第一个函数里面的
Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJSONString(), addToCartResponse, 'POST', 'JSON');
要改为Ajax.call('flow.php?step=add_to_cart', 'goods=' + objToJSONString(goods), addToCartResponse, 'POST', 'JSON');
comm.js里面还有一些Ajax.call调用tojsonstring的,都需要按照本例替换。

但非不得已不建议把一切旧的调用都修复,应该选择性的修复,应当出现冲突的地方我们才必须去修复。 

就是说哪里调用了jQuery,就把修正后的transport.js及json2.js导入,并且修复toJSONString和 parseJSON方法,其他页面几不必了。 

所以说,也不建议在header里面就加入了jQuery,因为这样每个页面都会出现冲突了,修复工资也比较麻烦了,能避免尽量避免了。 


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

网页保护、网页图片保护
1、禁止另存网页,把如下代码加入到网页body/body中 程序代...
2025-05-30
docker-compos...
1.Compose介绍 DockerCompose是一个用来定义和...
2024-04-26
firewall-cmd ...
firewalld的简要说明:firewalld 、firewal...
2024-03-15
DNF error: Er...
U盘引导最小化安装anolis oa 8.8 ga出现以下错误DN...
2023-10-27
列出服务单元: syste...
列出服务单元: systemctl list-units --ty...
2022-11-26
数字证书和加密Exchan...
加密和数字证书是所有组织的重要考虑因素。 默认情况下,Exchan...
2022-09-16

热门资讯

ecshop中mobile和W... WAP里没有购物流程。mobile里是新的手机购物,如果有用手访问会直接转入这里的文件,进行手机购物...
ecshop在PHP 5.4以... 运行Ecshop首页出现报错:出现下面这就话: Strict Standards: Only var...
完美解决ecshop和jque... 1、加入JSON2.js文件 原因很简单,transport修改Object是为了加入支持JSON的...
修改ECSHOP注册页面的Em... 有人说,在后台的 会员注册项设置 里面不是可以控制是否必填吗??我就碰到好几个人这么说过。 其实是他...
ECSHOP页面出现numbe... 首先需要说明的是:不是所有人的网站都会出现这个错误,只有符合一定环境和条件的网站才有可能出现这类错误...
Ecshop后台商品添加一个新... 1.在数据库 ecs_goods 这个表里面新建 你所需要的字段。例如(goods_xxx,good...
ecshop在PHP 5.4以... 运行Ecshop首页出现报错:出现下面这就话: Strict Standards: Only var...
Ecshop系统添加免运费赠品... 使用商城的朋友可能会经常碰到关于利用ecshop来实现一些活动的需求,把电影票设置为免运费。但是事实...
ecshop2.7.3忘记管理... 进入phpmyadmin,进入ecshop的数据库,进入表ecs_admin_user 打开,如下图...
完美解决ecshop和jque... 用过 ecsh op模板 的朋友都知道ecshop和Jquery是不兼容的,这也是我们在做 ecs ...