ecshop 的transport.js 与jqueyr冲突】的更多相关文章

1111 {insert_scripts files='common.js,global.js,transport.js'} <script type="text/javascript" src="{$ThemsPath}/js/jquery-1.11.1.min.js"></script> <script type="text/javascript"> $(function() { window.__Obje…
jQuery 和global.js 冲突 百度和google多次,根据网上的大多数建议和自己测试,解决办法如下:删除global.js 或者global.js 文件的10-13行屏蔽//Object.prototype.extend = function(object)//{// return Object.extend.apply(this, [this, object]);//}并且希望官网的人能解释下 global.js 文件的实际用处,上面的解决办法影响平台不 在html文件的最后面添加…
您提供一个简单的解决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…
众所周知:ecshop的transport.js文件和Jquery是冲突的,两个文件不能同时调用,现给出以下完美解决方案:原因分析:在transport.js文件中,大概 580行到590行之间,这个句用于格式化json,他重写了object的结构,导致于js框架冲突.冲突的原因是jquery给一个object增加了很多元素,那么在Object.prototype.toJSONString = function () 这个函数中 for (k in this)语句中进行了无数次的循环,导致网页很…
方案一: 本人亲测过,可以用.有的人说需要删除js目录下的gobal.js文件,否则依然会冲突.我没删除也解决了冲突. 1.加入JSON2.js文件 原因很简单,transport修改Object是为了加入支持JSON的方法.所以我这里用JSON官网在javascript语言上提供的 json2.js支持具体下载地址json官网 http://www.json.org/js.html 加入json2.js例如{insert_scripts files='transport.js,utils.js…
ECShop transport.js错误 这次出现的问题是transport.js在IE下提示对象不支持该用法.出现错误位置为608行的下面的代码: if(this.hasOwnProperty(k)){ 仔细看了一下代码,这个判断的主要作用应该是判断属性的.可能由于各浏览器的差异化,IE下就会出现不支持该用法的错误. 解决方法很简单,只要加多一个判断:if(this.hasOwnProperty&&this.hasOwnProperty(k)){ 就可以解决这个问题了. 究其原因在ie…
为了避免变量之间的覆盖与冲突,可以生成命名空间,命名空间是一种特殊的前缀,在js中,通过{ }对象实现. 在不同的匿名函数中,根据功能声明一个不同的命名空间,每个匿名函数中GLOBAL对象的属性都不直接挂在GLOBAL上,而是挂在次匿名函数的命名空间下,如: <script type="text/javascript"> var GLOBAL={} </script> <script type="text/javascript">…
为了避免变量之间的覆盖与冲突.能够生成命名空间.命名空间是一种特殊的前缀,在js中,通过{ }对象实现. 在不同的匿名函数中,依据功能声明一个不同的命名空间,每一个匿名函数中GLOBAL对象的属性都不直接挂在GLOBAL上,而是挂在次匿名函数的命名空间下.如: <script type="text/javascript"> var GLOBAL={} </script> <script type="text/javascript">…
解决办法: 将if (this.hasOwnProperty(k)) { 改为: if (this.hasOwnProperty && this.hasOwnProperty(k)) { 就可以解决问题了.…
今天在做discuz模板的时候,用到jquery的时候和原来主题js冲突.这个主要是Discuz X使用了$(id)作为dom节点的获取方法,而$符号刚好与jQuery的默认符号相冲突. 以下是基于之前的Discuz X和jQuery冲突的解决办法.给大家做个参考! 将jQuery的js文件jquery-1.8.0.min.js放到/static/js目录下,以下两个方法共用此文件,如不是放在该目录下,后面的代码请对应修改. 解决方法1: 修改/template/default/common/h…
两个库同时都定义了一个叫$的函数,所以在同时使用的时候会发生冲突.jQuery( http://jquery.com/ https://jquery.org/ )中提供了一种返还$的使用权给其他js库使用的方法.截至到这篇文章完成时(2018/01/20),Prototype.js( http://prototypejs.org/ )的最新版本是1.7.3(2015/09/22),未提供返还使用权的方法. 解决先加载Prototype.js后加载jQuery的问题 解决方法一 如何解决 在引入j…
在一个index.html文件里先后导入a.js和b.js文件a.js文件里写上var s = 2;console.log(s);b.js文件里写上var s = 5;这时a.js和b.js用了相同的变量名,这就是命名冲突命名冲突会导致如果修改b.js里那个重名的变量,则a.js里的重名变量也会被修改但这里a.js里仍然输出2,因为这里是先执行a.js再执行b.js,当在b.js里修改s的值时,a.js已经执行完了所以虽然s的值被修改了,但是似乎对a.js没什么影响 然而,当a.js里有异步执行…
1.先载入listtable.js 2.html代码 a.  <a href="javascript:listTable.sort('goods_number'); "></a> 或者<a href="javascript:listTable.sort('order_sn', 'DESC'); "></a> b.  <a onclick="listTable.remove({$warehouse.id}…
项目使用MVC+ExtJs实现,权限控制是基于Controller下的ActionResult的,有一个页面因参数不同就需要新建两个ActionResult. 不要问我为何是基于页面级,而不是数据级,我只想说这是历史遗留问题. 现在直面我们的问题,两个ActionResult也就是两个页面,共用同一个Js文件,而这个文件又是ExtJs的,众所周知,ExtJs获取Dom是通过Ext.getCmp('‘)来获取,那么,原来唯一的页面Id现在就变的不唯一了,会出现事件调用混乱. 昨天曾想了几年解决办法…
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);…
参考文章:http://yanhua365.lofter.com/post/b417f_1f0361 http://stackoverflow.com/questions/8302928/angularjs-with-django-conflicting-template-tags http://blog.boxelderweb.com/2012/11/16/providing-django-template-variables-as-constants-to-angularjs/ 说在前面的话…
[1]工程师甲编写功能A var a = 1; var b = 2; alert(a+b); [2]工程师乙添加新功能B var a = 2; var b = 1; alert(a-b); [3]上一步中,工程师乙在不知情的情况下,定义了同名变量a,产生冲突.于是使用匿名函数将脚本包起来,让变量作用域控制在匿名函数之内. //功能A (function(){ var a = 1; var b = 2; alert(a+b); })(); //功能B (function(){ var a = 2;…
http://www.w3school.com.cn/jquery/core_noconflict.asp…
解决方法 sc1 和sc2 的a都是window.a 会指向一个变量 1:使用匿名函数将脚本包起来,全局变量用来通信 如window.x; 2:命名空间 代码: <script> (function(){ //window.x=11; x为全局变量 var a=1; window.str=a; console.log(a);})(); </script> <script>(function(){ var a=2; console.log(a+"-"+…
原订阅邮件所使用的JS文件transport.js和JQuery冲突,会更改transport.js文件,用以下代码可同样实现订阅功能. <input type="text" id="user_email" class="inputBg" /> <input type="button" id="bnt_blue" value="{$lang.email_list_ok}"…
ECShop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的.   但恰恰的,在封装JSON各种方法的同时对object的模型进行了重写,这个就跟jQuery冲突了.因为众所周知的,jQuery对各种JavaScript对象进行了扩展.   这一切其实都很容易理解,各有各的理由十分自然,但头痛和无奈的就变得在我们这些使用者身上了.在ECShop论坛上原来也有很多朋友提出了这个问题,也提出了各种各样的方法,我尝试了一…
主要就是Ecshop的AJAX传输类,transport.js中重写了object的对象原型,从而导致了与jq框架的冲突. 解决: 1. 删除transport.js中587行 - 636行中关于object.prototype.toJSONString的定义 2. 自定义一个方法用于object对象的json序列化 如下 function obj2str(o) { //开始 var r = []; if(typeof o =="string") return "\"…
ecshop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的.   但恰恰的,在封装JSON各种方法的同时对object的模型进行了重写,这个就跟jQuery冲突了.因为众所周知的,jQuery对各种JavaScript对象进行了扩展.   这一切其实都很容易理解,各有各的理由十分自然,但头痛和无奈的就变得在我们这些使用者身上了.在ECShop论坛上原来也有很多朋友提出了这个问题,也提出了各种各样的方法,我尝试了一…
这个问题看ecshop的论坛里有很多帖子,解决方案就好几种,但是有几个标注完美解决方案的需要更改很多文件,对于我们这种初学者出现了问题的话是不知道怎么调试的. 找到一个很简单的解决方案,论坛里说只能解决小部分冲突,反正JQ插件和一些小功能能用了,再遇到其他的问题再调整吧. 把下面这段代码放到 transport.js  的底部就可以了. if (Object.prototype.toJSONString){ var oldToJSONString = Object.toJSONString; O…
之前自己动手做了一个小网站,在实现过程中遇到了一个关于js文件调用冲突的问题. 具体问题描述如下:在index.html文件中引用了两个js文件,单独添加banner.js或者focus_pic.js都可以运行并且实现相应的功能,但是两个同时添加两个文件后,后banner.js失效了.经过一番研究翻阅了一些资料,并在网上求助于各路大神,终于将问题的原因搞明白了. banner.js代码如下所示: var t = n = 0, count; $(document).ready(function()…
实际开发中遇到JQuery与其他js库起冲突 究其原因,是它们的全局对象定义冲突了,特别是变量”$”, 可重载$函数.使用jQuery.noConflict()就可以通过重载$函数 例:项目中应用的 <script type="text/javascript" src="js/mootools.js"></script> <script type="text/javascript">         jQuer…
1.一般JS冲突解决办法 a.最容易出现的就是js的命名冲突 ①.变量名冲突 变量有全局变量和局部变量当全局变量变量和局部变量名称一致时,就会js冲突,由于变量传递数值或地址不同就会产生JavaScript错误,甚至死循环. ②.方法名冲突 函数中有很多方法,不同的js之间可能函数名一样,这就使得程序执行时不知道改调用那个方法或者哪个方法执行后的结果,最终导致程序加载失败. ③.函数名冲突 一般是命名导致JS冲突.解决方法主要是查找在加载的js中是否具有相同命名的情况,然后修改命名 b.onlo…
a.最容易出现的就是js的命名冲突①.变量名冲突变量有全局变量和局部变量当全局变量变量和局部变量名称一致时,就会js冲突,由于变量传递数值或地址不同就会产生JavaScript错误,甚至死循环.②.方法名冲突函数中有很多方法,不同的js之间可能函数名一样,这就使得程序执行时不知道改调用那个方法或者哪个方法执行后的结果,最终导致程序加载失败.③.函数名冲突一般是命名导致JS冲突.解决方法主要是查找在加载的js中是否具有相同命名的情况,然后修改命名 b.onload 事件冲突如果在js中调用了win…
jQuery.noConflict()运行这个函数将变量$的控制权让渡给第一个实现它的那个库. 这有助于确保jQuery不会与其他库的$对象发生冲突. <script type="text/javascript" src="js/jquery-1.8.3.js"></script>   <script type="text/javascript">   $.noConflict();   </script…
解决JS冲突的演化过程 1.用匿名函数将脚本包裹起来,可以有效控制全局变量,避免冲突隐患 (function(){})(): 2.定义一个全局作用域的变量str,可以帮助我们在不同匿名函数间通信 严格控制全局变量的数量(不同匿名函数之间通信越多,全局变量越多,违背使用匿名函数的初衷) 3.hash对象作为全局变量 GLOBAL是全局变量,用做通信桥梁的变量是作为GLOBAL的属性存在的,如果变量名比较简单,还是很容易互相覆盖掉 4.使用命名空间 命名空间是一种特殊的前缀,在JavaScript中…