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

用过ecshop模板的朋友都知道ecshop和Jquery是不兼容的,这也是我们在做ecshop二次开发的时候最头疼的问题,那么怎么才能让ecshop和Jquery完美的兼容呢?

其实是ECSHOP把ajax的处理和json的处理全部整合到js目录下的transport.js文件中,自己写了一套方法,也就是重写了,那要解决ecshop和Jquery的冲突就主要修改这个文件来实现。

解决思路是屏蔽ECshop扩展的toJSONString方法,用别的函数代替。

一,修改默认js文件

1、首先复制一份 transport.js 改名为 transport.org.js 提供给后台使用

2、屏蔽掉transport.js里的toJSON功能 行数大概有497-737行之间

由if ( ! Object.prototype.toJSONString) { 开头的代码。

修改352行为:

 legalParams = “JSON=” + $.toJSON(params);

修改408行为:

result = $.evalJSON(result);

屏蔽掉global.js里的如下代码(第10-13行):

Object.prototype.extend = function(object)

{

  return Object.extend.apply(this, [this, object]);

}

3、修改index.js文件44行改为:

var res = $.evalJSON(result);

4、修改common.js文件

第34行改为:

Ajax.call(‘flow.php?step=add_to_cart’, ‘goods=’ + $.toJSON(goods), addToCartResponse, ‘POST’, ‘JSON’);

第850行改为:

Ajax.call(‘flow.php?step=add_package_to_cart’, ‘package_info=’ + $.toJSON(package_info), addPackageToCartResponse, ‘POST’, ‘JSON’);

第1056行改为:

Ajax.call(‘flow.php?step=add_to_cart’, ‘goods=’ + $.toJSON(goods), addToCartResponse, ‘POST’, ‘JSON’);

5、修改compare.js文件

第49行改为:

 this.data = $.evalJSON(cookieValue);

第67行改为:

 var obj = $.evalJSON(cookieValue);

第133行改为:

 document.setCookie(“compareItems”, $.toJSON(this.data));

6、修改global.js文件

第16行改函数名 :function $e()

第114和126行都改为:    var element = $e(element);

二,修改后台调用部分

7、<!———–路径修改———–>

修改后台头部引入transport.js路径 admin/templates/pageheader.htm 第9行改为: {insert_scripts files=”../js/transport.org.js,common.js”}

admin/templates/menu.htm

151行改成 {insert_scripts files="../js/global.js,../js/utils.js,../js/transport.org.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

第188行 :

 Ajax.call(‘comment.php’, ‘cmt=’ + $.toJSON(cmt), commentResponse, ‘POST’, ‘JSON’);

10、compare.dwt

第20行 :

var obj = $.evalJSON(document.getCookie(“compareItems”));

第24行 :

document.setCookie(“compareItems”, $.toJSON(obj));

11、flow.dwt

第138行 :

Ajax.call(‘flow.php?step=add_to_cart’, ‘goods=’ + $.toJSON(goods), collect_to_flow_response, ‘POST’, ‘JSON’);

第199行 :

 Ajax.call(‘flow.php?step=add_to_cart’, ‘goods=’ + $.toJSON(goods), fittings_to_flow_response, ‘POST’, ‘JSON’);

12、<!—–jquery文件需置顶的dwt文件—-jquery.js文件需要在compare.js文件加载前加载,否则会报错—–>

brand.dwt

brand_list.dwt

category.dwt

exchange_list.dwt

search.dwt

如:

{* 包含脚本文件 *}

{insert_scripts files=’jquery.js,jquery.json.js’}

{insert_scripts files=’common.js,global.js,compare.js’}


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

RIP

相关内容

网页保护、网页图片保护
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
续订Exchange Se...
每个证书都有内置的到期日期。 在Exchange Server中,...
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 ...