ecshop的jquery,jqzoom,transport.js冲突 问题解决(麻烦版)
ecshop里面jquery与transport.js文件冲突是众所周知的,这里提供的方案,不是最完美的,是在网上提出的解决方案的基础上整理的。
是这样的,保留原来的transport.js,发生冲突的页面调用修改过的transportGoods.js,这样就避免了修改所有js文件的麻烦;函数方面,保留原来的函数,调用出错的函数,重新复制一个,起个新的函数名。
不喜欢这种方式的,下面的可以忽略了,没有什么技术含量,总结了一下。
页面:goods.dwt
效果:放大镜
所用插件:jquery图片放大镜效果插件 jqzoom
症状一:jquery与transport.js文件冲突
思路分析:两者都定义了$,导致发生冲突
实施方案:详细的分析网上有很多,这里只上传已配置好的transport.js文件(文件名重命名为:transportGoods.js),感兴趣的百度下详细的配置。
解决步骤:
- 下载transportGoods.js到js目录下
- 在goods.dwt页面,适当的位置调用一下就好:
{insert_scripts files=’transportGoods.js’}
至此,放大镜效果完美解决了。
症状二:在线购买失效,报错:
错误: goods.toJSONString is not a function
源文件:http://127.0.0.1/js/common.js
行:34出错地方的代码:Ajax.call(‘flow.php?step=add_to_cart’, ‘goods=’ + goods.toJSONString(), addToCartResponse, ‘POST’, ‘JSON’);
思路分析:goods.dwt页面调用的是修改后的transportGoods.js文件,导致toJSONString函数找不到。
解决步骤:
1、对比transport.js与transportGoods.js 的352行
legalParams = “JSON=” + params.toJSONString(); //transport.js
legalParams = “JSON=” + objToJSONString(params); //transportGoods.js
2、common.js文件的34行:
Ajax.call(‘flow.php?step=add_to_cart’, ‘goods=’ + goods.toJSONString(), addToCartResponse, ‘POST’, ‘JSON’);
3、分析1、2中的红色代码区,修改common.js的34行为:
Ajax.call(‘flow.php?step=add_to_cart’, ‘goods=’ + objToJSONString(goods), addToCartResponse, ‘POST’, ‘JSON’);
4、至此,证明方法可行,但是其他地方的Ajax.call就会出错,在线购买调用的是common.js里面的addToCart()函数,复制一份,重命名为:addToCartGoods(),修改里面的Ajax.call为步骤3中提到的。
5、修改goods.dwt页面,调用addToCart()的地方为addToCartGoods()
OK!
transportGoods.js文件:[点击下载]
成功解决!
www.tahaoma.net
3月 19, 2012 1:54 下午
哪里捣鼓的有问题吧朋友?我当初就是按照这个步骤操作的,还算顺利
yadgen
3月 15, 2012 10:09 上午
还是不行,ECSHOP版本2.72
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; Tablet PC 2.0)
时间戳: Thu, 15 Mar 2012 02:08:10 UTC
消息: “JSON”未定义
行: 792
字符: 2
代码: 0
URI: http://local.boha.com/js/transportGoods.js
匿名
3月 15, 2012 10:08 上午
不行啊,ECSHOP版本2.72
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; Tablet PC 2.0)
时间戳: Thu, 15 Mar 2012 02:08:10 UTC
消息: “JSON”未定义
行: 792
字符: 2
代码: 0
URI: http://local.boha.com/js/transportGoods.js
消息: “JSON”未定义
行: 792
字符: 2
代码: 0
URI: http://local.boha.com/js/transportGoods.js
zendwang
12月 1, 2011 11:37 上午
不错的
mo meak
11月 23, 2011 4:30 下午
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
时间戳: Wed, 23 Nov 2011 08:30:37 UTC
消息: 例外被抛出且未被接住
行: 409
字符: 9
代码: 0
URI: http://127.0.0.1/js/transportGoods.js
mo meak
11月 23, 2011 4:29 下午
还真是不行
千里马
11月 8, 2011 11:26 下午
购物车的地方,记得当时也遇到过,印象当中是又复制了某个文件,也是因为冲突造成的。最近正在开发个商城,到时详细的写一份。
枫子
11月 8, 2011 12:56 下午
好像有点不行 我是最新的2.7.2版本
修改好后 jquery可以用了 但是添加到购物车不能用 提示 ‘Ajax’ 未定义
求解
谢谢
千里马
10月 20, 2011 8:45 上午
方法可用,可能与你的版本有关系,或者有些地方有问题导致出错。可以把错误提示贴过来。
ksn
10月 17, 2011 2:42 下午
好像不能用。不知道为什么