Magento购物车打破浏览器后退按钮

时间:2012-04-18 20:33:28

标签: php html magento e-commerce

我正在使用Magento 1.6.2,进行了大量的自定义 - 包括经过大量修改的购物车模板。

在将商品添加到购物车后,当用户点击浏览器的“后退”按钮时,我遇到了问题。我只能用Firefox重现这个问题。 Chrome和IE工作正常。

重现的步骤。

  1. 打开特定产品页面,点击“添加到购物车”。
  2. 您将转到购物车/预览页面。
  3. 使用浏览器的“后退”按钮返回产品视图。
  4. “添加到购物车”按钮现在完全无法使用。在具有自定义所需选项的产品上,不会运行验证。真的,一切都没有发生。
  5. 返回产品目录。找到并返回之前使用的相同项目。
  6. 点击“添加到购物车”。一切正常 - 您将被重定向到购物车,并获得更新的QTY。
  7. 我不知道从哪里开始。有人有什么想法吗?

    制作/实时网站:http://myerstownsheds.com/'请求报价'实际上是'添加到购物车'按钮,我们还没有销售任何产品。

1 个答案:

答案 0 :(得分: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;
    }

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