您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程

ecshop与jquery冲突兼容的解决方法

王颢锵2025-02-07Ecshop商城教程已有人查阅

导读原因分析:在transport.js文件中,大概 580行到590行之间,这个句用于格式化json,他重写了object的结构,导致于js框架冲突。冲突的原因是jquery给一个object增加了很多元素,那么在

原因分析:
在transport.js文件中,大概 580行到590行之间,这个句用于格式化json,他重写了object的结构,导致于js框架冲突。冲突的原因是jquery给一个object增加了很多元素,那么在Object.prototype.toJSONString = function () 这个函数中 for (k in this) 语句中进行了无数次的循环,导致网页很卡,并且在IE中会报错。
ecshop2.7.2/2.7.3解决jquery的冲突,亲测,无误
1.先复制一份 transport.js 改名为 transport.org.js 提供给后台调用
2.注释掉js/transport.js里的toJSON功能 行数为497-737行之间。其中将
legalParams = "JSON=" + params.toJSONString();
替换为
legalParams = $.evalJSON(params);
然后把
result = result.parseJSON();
修改为
result = $.evalJSON(result);
3.修改js/index.js里的第44行,将
var res = result.parseJSON();
改为:
var res = $.evalJSON(result);
4.修改js/改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=' + $.toJSON(goods), addToCartResponse, 'POST', 'JSON');
然后把
Ajax.call('flow.php?step=add_package_to_cart', 'package_info=' + package_info.toJSONString(), addPackageToCartResponse, 'POST', 'JSON');
修改为
Ajax.call('flow.php?step=add_package_to_cart', 'package_info=' + $.toJSON(package_info), addPackageToCartResponse, 'POST', 'JSON');
之后把
Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJSONString(), addToCartResponse, 'POST', 'JSON');
修改为
Ajax.call('flow.php?step=add_to_cart', 'goods=' + $.toJSON(goods), addToCartResponse, 'POST', 'JSON');
5.修改compare.js文件
this.data = cookieValue.parseJSON();
修改为
this.data = $.evalJSON(cookieValue);
然后把
var obj = cookieValue.parseJSON();
修改为
var obj = $.evalJSON(cookieValue);
之后把
document.setCookie("compareItems", this.data.toJSONString());
修改为
document.setCookie("compareItems", $.toJSON(this.data));
6.修改js/global.js文件
function $()
修改为
function $e()
然后把
var element = $(element);
修改为
var element = $e(element);
7.修改后台头部引入transport.js路径 admin/templates/pageheader.htm 第9行改为:
{insert_scripts files="../js/transport.org.js,common.js"}
8.修改themes/default/library/page_header.lbi文件在
{insert_scripts files='transport.js,utils.js'}
上面加上如下代码
{insert_scripts files='jquery.js,jquery.json.js'}
9.修改你的模板下的library/comment_list.lbi。
Ajax.call('comment.php', 'cmt=' + cmt.toJSONString(), commentResponse, 'POST', 'JSON');
修改为
Ajax.call('comment.php', 'cmt=' + $.toJSON(cmt), commentResponse, 'POST', 'JSON');
10.修改模板compare.dwt。
var obj = document.getCookie("compareItems").parseJSON();
修改为
var obj = $.evalJSON(document.getCookie("compareItems"));
然后把
document.setCookie("compareItems", obj.toJSONString());
修改为
document.setCookie("compareItems", $.toJSON(obj));
11.修改模板flow.dwt
Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJSONString(), collect_to_flow_response, 'POST', 'JSON');
修改为
Ajax.call('flow.php?step=add_to_cart', 'goods=' + $.toJSON(goods), collect_to_flow_response, 'POST', 'JSON');
然后把
Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJSONString(), fittings_to_flow_response, 'POST', 'JSON');
修改为
Ajax.call('flow.php?step=add_to_cart', 'goods=' + $.toJSON(goods), fittings_to_flow_response, 'POST', 'JSON');
12.这样就可以了,若果需要使用ajax那么请用修改后的json功能。

本文标签:

很赞哦! ()

相关源码

  • (PC+WAP)pbootcms模板黑色门窗定制五金建材网站下载为门窗定制与五金建材企业设计的网站解决方案,采用PbootCMS开发,兼具专业展示与营销功能。黑色系设计突显工业质感,响应式布局确保在手机、平板等设备上的浏览体验。通过简单的内容替换,也可适用于建材贸易、家具定制等相关行业。查看源码
  • (自适应响应式)蓝色勘察设计院机构单位商会协会pbootcms模板下载本模板基于PbootCMS系统开发,为勘察设计院所、工程咨询单位设计,特别适合展示设计成果、技术服务和项目案例。采用响应式技术,确保设计图纸和方案以及文案在不同设备上都能清晰展示。查看源码
  • (PC+WAP)智能机器人人工智能物联网自动化设备源码下载本模板基于PbootCMS内核开发,为智能机器人及传感器科技企业精心设计。采用现代化设计风格,突出科技感与专业性,多方位展示企业技术实力与产品优势。查看源码
  • (PC+WAP)蓝色钢材加工建筑装修施工材料网站模板下载为钢材加工企业设计的PbootCMS响应式模板,采用PC+WAP双端适配技术,数据实时同步。简洁大气的蓝色工业风格设计,突出钢材加工行业特性,其他制造业用户更换图文内容即可快速应用。查看源码
  • (自适应)英文电子芯片电子元件网站pbootcms模板下载基于PbootCMS内核开发的电子元件类企业专用模板,采用响应式设计技术,适配电子元器件、集成电路、半导体等行业的品牌展示与技术文档发布需求。前端布局针对芯片参数表格与产品规格书展示进行深度优化。查看源码
  • (自适应)蓝色英文外贸电子科技产品带三级栏目网站模板为外贸企业设计的英文网站模板,基于PbootCMS系统开发。突出多语言支持和国际化布局,三级栏目结构清晰展示产品分类,响应式设计确保更好客户在移动端和PC端获得一致的专业体验。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐