transport.jsとjqueryの競合問題の解決方法

1436 ワード

問題の原因:/js/transport.jsファイルprototype.toJSOnString=function(){**************約580行から590行の間のこの文はjsonをフォーマットするために使用され、objectの構造を書き換え、jsフレームワークの衝突を招き、解決するにはこのコードを注釈し、別の方法で置き換える必要がある.
私はすべてを*に使います.toJSOnStringの場所は、/js/commonなどの関数に置き換えられます.js 29行Ajax.call(‘flow.php?step=add_to_cart', ‘goods=' + goods.toJSONString, addToCartResponse, ‘POST', ‘JSON');
置換先:
Ajax.call(‘flow.php?step=add_to_cart', ‘goods=' + obj2str(goods), addToCartResponse, ‘POST', ‘JSON'); obj 2 str関数は次のとおりです.

function obj2str(o){
var r = [];
if(typeof o ==”string”) return “\”"+o.replace(/([\'\"\\])/g,”\\$1″).replace(/(
)/g,”\
”).replace(/(\r)/g,”\\r”).replace(/(\t)/g,”\\t”)+”\”"; if(typeof o ==”undefined”) return “undefined”; if(typeof o == “object”){ if(o===null) return “null”; else if(!o.sort){ for(var i in o) r.push(“\”"+i+”\”"+”:”+obj2str(o[i])) r=”{“+r.join()+”}” }else{ for(var i =0;i

これでいいかもしれませんが、まだいくつかのステップが間違っているかもしれません.自分で体得して、これはただの解決方法で、必ずしもあなたのウェブサイトに適用されるわけではありません.
私は次の段落に注釈をつけた.

/*
Object.prototype.toJSONString = function () {
……
// Join all of the fragments together and return.

a.push(‘}');
return a.join(”);
};
*/