4

これはおそらく、javascript のスキルを持っている人にとっては簡単な修正 (簡単な +200 の評判) です。

問題のデモ: http://shoppingcart-bthub.blogspot.com/すべてのアイテムをカートに追加し、[更新] をクリックして Cookie の問題を確認します。

ショッピング カートに追加されるアイテムの Cookie を処理するコードの部分を除いて、すべてが正しく機能します。何らかの理由で、ブラウザに応じて 2 ~ 5 個のアイテムしか保持されません。

Google Chrome - 2 つのアイテムのみを保持します (ショッピング カート内の他のすべてのアイテムは、ページのリロード後に消えます)

Firefox - 合計 4 項目

サファリ - 4

インターネット エクスプローラー - 5

デモの JavaScript: http://shopppingcart.googlecode.com/files/simplecart.js

上記の JavaScript リンクの一部は、Cookie を処理するようにコーディングされています。

    /*** data storage and retrival ****/ 
/* load cart from cookie */ 
me.load = function () {
var me = this;
 /* initialize variables and items array */
me.items = {};
me.total = 0.00;
me.quantity = 0;

 /* retrieve item data from cookie */
if( readCookie('simpleCart') ){
var data = unescape(readCookie('simpleCart')).split('++');
for(var x=0, xlen=data.length;x<xlen;x++){
var info = data[x].split('||');
var newItem = new CartItem();   
if( newItem.parseValuesFromArray( info ) ){
newItem.checkQuantityAndPrice();

/* store the new item in the cart */
 me.items[newItem.id] = newItem;
 }
 }
 }
 me.isLoaded = true;
};

/* save cart to cookie */
me.save = function () {
var dataString = "";
for( var item in this.items ){
dataString = dataString + "++" + this.items[item].print();
}
createCookie('simpleCart', dataString.substring( 2 ), 30 );
};

完全なライブ コードをテストするには:

すべてのコードを含む完全なライブ テンプレートについては、blogger.com で無料のブログを開き、ここから XML テンプレートをダウンロードしてブロガーにアップロードします: http://www.bloggermint.com/2011/05/shopping-cart-blogger-template /無料ダウンロードは左側のサイドバーにあります。また、そのページの指示に従って、blogger.com で起動してください。

4

2 に答える 2

1

暗い部屋で黒猫を捕まえているようですが、猫はいません。

だから私がやったこと:

  1. http://shoppingcart.googlecode.com/files/simplecart.jsを入手
  2. http://wojodesign.com/simpleCart/から html を取得します。
  3. simplecart.js を自分のものに置き換えます。

私が見つけたもの:

  1. ファイルシステムからhtmlページを開くと、あなたが持っているものがあります
  2. サーバー(私の場合はApacheのローカルインスタンス)に配置すると、すべて正常に動作します

2 エピソード。

クッキーに多くの情報を入れようとしています。このような印刷機能を変更する簡単な方法

CartItem.prototype.print = function () {
    var returnString = '';
    for( var field in this ) {
      if( typeof( this[field] ) != "function" && field !="description") {
        returnString+= escape(field) + "=" + escape(this[field]) + "||";
      }
    }
    return returnString.substring(0,returnString.length-2);
  };

Cookie のすべての項目フィールドが本当に必要ですか?

于 2013-07-14T04:42:12.420 に答える