0

私は Magento 1.6.2 を使用していますが、大幅に変更されたショッピング カート テンプレートなど、かなりのカスタマイズが行われています。

ショッピング カートにアイテムを追加した後、ユーザーがブラウザの [戻る] ボタンをクリックすると問題が発生します。この問題は、Firefox を使用してのみ再現できます。Chrome と IE は正常に動作します。

再現する手順。

  1. 特定の製品ページを開き、「カートに追加」をクリックします。
  2. ショッピング カート/プレビュー ページに転送されます。
  3. 製品ビューに戻るには、ブラウザの「戻る」ボタンを使用してください。
  4. 「カートに入れる」ボタンは完全に機能しなくなりました。カスタムの必須オプションがある製品では、検証は実行されません。本当に、何も起こりません。
  5. 製品カタログに戻る 見つけて、以前に使用した同じアイテムに戻ります。
  6. 「カートに入れる」をクリックします。すべて正常に動作します。QTY が更新されたショッピング カートにリダイレクトされます。

どこから始めればよいかわかりません。誰にもアイデアはありますか?

プロダクション/ライブ サイト: http://myerstownsheds.com/「見積依頼」は実際には「カートに入れる」ボタンです。まだ何も販売していません。

4

1 に答える 1

1

問題は、ボタンをクリックすると無効になることです。

これは Firefox のみの問題です。これは、戻るボタンが使用されたときに Firefox がページの状態をリセットしないためです。この場合、ボタンが無効になっているため、ページを離れたときとまったく同じ状態でページに戻る傾向があります。

[カートに追加] ボタンをクリックしてから [停止] を押して、任意のブラウザーで同じ問題を再現します。ボタンを再度クリックすることはできません。

あなたのページには、これを含む JavaScript タグがあります。

    var productAddToCartForm = new VarienForm('product_addtocart_form');
    productAddToCartForm.submit = function(button, url) {
        if (this.validator.validate()) {
            var form = this.form;
            var oldUrl = form.action;

            if (url) {
               form.action = url;
            }
            var e = null;
            try {
                this.form.submit();
            } catch (e) {
            }
            this.form.action = oldUrl;
            if (e) {
                throw e;
            }

            if (button && button != 'undefined') {
                button.disabled = true;
            }
        }
    }.bind(productAddToCartForm);

クリック時にボタンを「無効」に設定することで、Magento は、ページの読み込みが遅い場合にユーザーがボタンを複数回クリックするのを防ぎます。この問題を修正したい場合は、次の行を削除する必要があります。

    if (button && button != 'undefined') {
        button.disabled = true;
    }

しかし、他の問題にも対処する必要があります。

于 2012-04-18T23:26:01.807 に答える