首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

解决ECShop transport.js与jQuery摩擦 ecshop不加载js

2012-12-19 
解决ECShop transport.js与jQuery冲突 ecshop不加载js? if ( ! Object.prototype.toJSONString) {这一段代

解决ECShop transport.js与jQuery冲突 ecshop不加载js
?解决ECShop transport.js与jQuery摩擦 ecshop不加载js

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

    2.2 加入新的JSON支持方法
    ?解决ECShop transport.js与jQuery摩擦 ecshop不加载js
      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方法(具体在352行左右)

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

      3、修复旧JSON调用地方

      简单来说就是把所有toJSONString 的调用改为用objToJSONString,而parseJSON()改为parseObjectToJSON。

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

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

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

      最好的解决方案就坐等ECShop来搞定了。

      同样的,这次的冲突不具备特殊性,也是一次很好的经验,因为以后遇到修改object等对象的场合并不会少,有这次的经验就知道如何应对了。


      PS:附件为修复后的transport.js文件,注意调用之前必须加入json2.js文件。

热点排行
Bad Request.