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関数は次のとおりです.
これでいいかもしれませんが、まだいくつかのステップが間違っているかもしれません.自分で体得して、これはただの解決方法で、必ずしもあなたのウェブサイトに適用されるわけではありません.
私は次の段落に注釈をつけた.
私はすべてを*に使います.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(”);
};
*/