成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 鷹潭OA > 鷹潭網(wǎng)站建設(shè)公司
ecshop中jQuery沖突解決
鷹潭網(wǎng)站建設(shè)www.diyphp.net
<span style="COLOR: rgb(0,0,0)">首要就是Ecshop的AJAX傳輸類,transport.js 中重寫了object的對象原型,然后招致了與jq框架的抵觸。
<span style="COLOR: rgb(0,0,0)">處理:
1. 刪除transport.js中587行 - 636行中關(guān)于object.prototype.toJSONString的界說
2. 自界說一個(gè)辦法用于object對象的json序列化
如下
- function obj2str(o)
- {
- //開端
- var r = [];
- if(typeof o =="string") return """+o.replace(/(['"[url=file://\])/g,]\])/g,"\$1").replace(/(n)/g,"\n").replace(/(r)/g,"\r").replace(/(t)/g,"\t")+"[/url]"";
- if(typeof o =="undefined") return "undefined";
- if(typeof o == "object"){
- if(o===null) return "null";
- else if(!o.sort){
- for(var i in o)
- {
- if(i!="toJSONString") //添加判別,肅清對object原型的界說參加到j(luò)son中
- r.push("""+i+"""+":"+obj2str(o));
- }
- r="{"+r.join()+"}";
- }else{
- for(var i =0;i<o.length;i++)
- r.push(obj2str(o))
- r="["+r.join()+"]"
- }
- return r;
- }
- return o.toString();
- //完畢
- }
<span style="COLOR: rgb(0,0,0)">3. 在模板頁和js劇本中一切關(guān)于 obj.toJSONString()的當(dāng)?shù)?,一概交換為obj2str(obj)

<span style="COLOR: rgb(0,0,0)">4. 重寫好后發(fā)現(xiàn)compare.js, 首要重寫個(gè)中的準(zhǔn)時(shí)器 功用。 將以下代碼交換到compare.js中
- var Compare = new Object();
- Compare = {
- add : function(goodsId, goodsName, type)
- {
- var count = 0;
- for (var k in this.data)
- {
- if (typeof(this.data[k]) == "function")
- continue;
- if (this.data[k].t != type) {
- alert(goods_type_different.replace("%s", goodsName));
- return;
- }
- count++;
- }
- if (this.data[goodsId])
- {
- alert(exist.replace("%s",goodsName));
- return;
- }
- else
- {
- this.data[goodsId] = {n:goodsName,t:type};
- }
- this.save();
- this.init();
- },
- init : function(){
- this.data = new Object();
- var cookieValue = document.getCookie("compareItems");
- if (cookieValue != null) {
- this.data = cookieValue.parseJSON();
- }
- if (!this.compareBox)
- {
- this.compareBox = document.createElement("DIV");
- var submitBtn = document.createElement("INPUT");
- this.compareList = document.createElement("UL");
- this.compareBox.id = "compareBox";
- this.compareBox.style.display = "none";
- this.compareBox.style.top = "200px";
- this.compareBox.align = "center";
- this.compareList.id = "compareList";
- submitBtn.type = "button";
- submitBtn.value = button_compare;
- this.compareBox.appendChild(this.compareList);
- this.compareBox.appendChild(submitBtn);
- submitBtn.onclick = function() {
- var cookieValue = document.getCookie("compareItems");
- var obj = cookieValue.parseJSON();
- var url = document.location.href;
- url = url.substring(0,url.lastIndexOf('/')+1) + "compare.php";
- var i = 0;
- for(var k in obj)
- {
- if(typeof(obj[k])=="function")
- continue;
- if(i==0)
- url += "?goods[]=" + k;
- else
- url += "&goods[]=" + k;
- i++;
- }
- if(i<2)
- {
- alert(compare_no_goods);
- return ;
- }
- document.location.href = url;
- }
- document.body.appendChild(this.compareBox);
- }
- this.compareList.innerHTML = "";
- var self = this;
- for (var key in this.data)
- {
- if(typeof(this.data[key]) == "function")
- continue;
- var li = document.createElement("LI");
- var span = document.createElement("SPAN");
- span.style.overflow = "hidden";
- span.style.width = "100px";
- span.style.height = "20px";
- span.style.display = "block";
- span.innerHTML = this.data[key].n;
- li.appendChild(span);
- li.style.listStyle = "none";
- var delBtn = document.createElement("IMG");
- delBtn.src = "themes/default/images/drop.gif";
- delBtn.className = key;
- delBtn.onclick = function(){
- document.getElementById("compareList").removeChild(this.parentNode);
- delete self.data[this.className];
- self.save();
- self.init();
- }
- li.insertBefore(delBtn,li.childNodes[0]);
- this.compareList.appendChild(li);
- }
- if (this.compareList.childNodes.length > 0)
- {
- this.compareBox.style.display = "";
- this.timer = window.setInterval("flowdiv('compareBox')", 50);
- }
- else
- {
- this.compareBox.style.display = "none";
- window.clearInterval(this.timer);
- this.timer = 0;
- }
- },
- save : function()
- {
- var date = new Date();
- date.setTime(date.getTime() + 99999999);
- document.setCookie("compareItems", obj2str(this.data));
- },
- lastScrollY : 0
- }
- //用于準(zhǔn)時(shí)器的主動滾動的層
- lastScrollY=0;
- function flowdiv(domid){
- var diffY;
- if (document.documentElement && document.documentElement.scrollTop)
- diffY = document.documentElement.scrollTop;
- else if (document.body)
- diffY = document.body.scrollTop
- else
- {/*Netscape stuff*/}
- //alert(diffY);
- percent=.1*(diffY-lastScrollY);
- if(percent>0) percent=Math.ceil(percent);
- else percent=Math.floor(percent);
- document.getElementById(domid).style.top=parseInt(document.getElementById(domid).style.top)+percent+"px";
- lastScrollY=lastScrollY+percent;
- //alert(lastScrollY);

