huanayun
hengtianyun
vps567
莱卡云

ECshop的邮件订阅解决与JS冲突失效之jquery ajax版 -云主机博士

PikPak

推荐阅读:

[AI-人工智能]免翻墙的AI利器:樱桃茶·智域GPT,让你轻松使用ChatGPT和Midjourney - 免费AIGC工具 - 拼车/合租账号 八折优惠码: AIGCJOEDISCOUNT2024

[AI-人工智能]银河录像局: 国内可靠的AI工具与流媒体的合租平台 高效省钱、现号秒发、翻车赔偿、无限续费|95折优惠码: AIGCJOE

[AI-人工智能]免梯免翻墙-ChatGPT拼车站月卡 | 可用GPT4/GPT4o/o1-preview | 会话隔离 | 全网最低价独享体验ChatGPT/Claude会员服务

[AI-人工智能]边界AICHAT - 超级永久终身会员激活 史诗级神器,口碑炸裂!300万人都在用的AI平台

ECshop与jQuery冲突的问题由来已久,解决方法大多繁琐,且在一些小地方会出错,如产品较功能等,本文中的方法结合了网上最新公开文章与本站实际开发过程中的经验,基本上可完美解决ECshop与jQuery的冲突,经测试,兼容ECshop原有所有的功能,包括产品比较功能,而且修改步骤简单明了:

1、修改文件:/js/transport.js
在文件最底部增加代码:

if (Object.prototype.toJSONString) {
    var oldToJSONString = Object.toJSONString;
    Object.prototype.toJSONString = function() {
        if (arguments.length > 0) {
            return false;
        } else {
            return oldToJSONString.apply(this, arguments);
        }
    }
}

2、修改文件:/js/compare.js
查找代码:

this.timer = window.setInterval(this.relocation.bind(this), 50);

修改为:

this.timer = window.setInterval(this.bind(this.relocation,this), 50);

查找代码:

lastScrollY : 0

在代码上面一行增加代码:

bind: function(obj1, obj2) {
    return function() {
        obj1.apply(obj2, arguments);
    }
},

3、在以下模板文件中,找到嵌入global.js文件的代码,删除嵌入global.js
brand.dwt
brand_list.dwt
category.dwt
exchange_list.dwt
search.dwt

4、下载最新版的jquery库文件到模板目录中,如:
/themes/temlatename/images/js/jquery.1.5.2.js

如果你的模板中没有对应目录,则新建目录拷入jquery文件即可

5、修改文件:/themes/temlatename/library/page_header.lbi

在顶部加入代码:

注意,以后调用JQUERY对象要用两个美元符$$,不要用一个,因为一个,因为一个,因为一个与ECshop原有的函数同名有兼容问题。

6. 到此应该就能解决冲突了
另外一种方法:

ecshop模板兼容jquery问题, 一直是困扰开发人员的棘手问题,主要原因是 transprot.js  文件中, 大概 580行到590行之间,这个句用于格式化json,他重写了object的结构,导致于js框架冲突。冲突的原因是jquery给一个object增加了很多元素,那么在Object.prototype.toJSONString = function () 这个函数中 for (k in this) 语句中进行了无数次的循环,导致网页很卡,并且在IE中会报错。

ECSHOP开发中心为您提供一个简单的解决transport.js 和 jquery 方法:

在 page_header.lbi 库文件中加入如下代码,注意操作顺序:

1.先导入transport.js  文件 {insert_scripts files=’transport.js,utils.js’}

2.然后导入您网站使用的jquery文件
<script language=”javascript” src=”您的jquery存放路径”></script>

3.加入代码

<script type="text/javascript">
$(function() {
window.__Object_toJSONString = Object.prototype.toJSONString;
delete Object.prototype.toJSONString;
});
</script>

宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取

bwg Vultr justhost.asia racknerd hostkvm pesyun Pawns


本文标签属性:

ECshop:ecshop官网

原文链接:,转发请注明来源!