Magento购物车在浏览器后退按钮上中断


Magento Shopping Cart Breaks on Browser Back Button

我使用的是Magento 1.6.2,进行了相当多的自定义 - 包括大量修改的购物车模板。

当用户将商品添加到购物车后单击浏览器的"后退"按钮时,我遇到了问题。我只能使用火狐重现此问题。Chrome和IE工作正常。

重现步骤。

  1. 打开特定的产品页面,单击"添加到购物车"。
  2. 您将被转到购物车/预览页面。
  3. 使用浏览器的"后退"按钮返回产品视图。
  4. "添加到购物车"按钮现在完全不起作用。在具有自定义必需选项的产品上,不会运行验证。真的,什么都没发生。
  5. 返回到产品目录。找到并返回到之前使用的相同项目。
  6. 点击"添加到购物车"。一切正常 - 您将被重定向到购物车,并更新数量。

我不知道从哪里开始。有人有什么想法吗?

生产/实时站点:http://myerstownsheds.com/"请求报价"实际上是"添加到购物车"按钮,我们还没有销售任何东西。

问题是当单击按钮时,它会被禁用。

这只是 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;
    }

但你也必须忍受另一个问题。