【问题标题】:Magento Shopping Cart Breaks on Browser Back ButtonMagento 购物车在浏览器后退按钮上中断
【发布时间】:2012-04-18 20:33:27
【问题描述】:

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

当用户在将商品添加到购物车后单击浏览器的“返回”按钮时,我遇到了问题。我只能使用 Firefox 重现此问题。 Chrome 和 IE 运行良好。

重现步骤。

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

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

生产/现场网站:http://myerstownsheds.com/“请求报价”实际上是“添加到购物车”按钮,我们还没有出售任何东西。

【问题讨论】:

  • 点击后退按钮并返回产品视图页面后,您是否可能会收到 javascript 错误?
  • 这可能是模板问题。您必须与设计师核实或向我们展示一些代码以尝试解决。
  • thnx,添加了站点链接。我在 firebug 控制台中没有收到任何错误,但我会再次检查。
  • 另外,我刚刚注意到:将 jquery 源添加到页面也会完全禁用按钮(可能是原型冲突?)。这有关系吗?

标签: php html magento e-commerce


【解决方案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;
    }

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

【讨论】:

  • 谢谢!我删除了 button.disabled 行,效果很好。不知道我会怎么处理另一个问题,但是如果他们不小心点击了两次按钮,这也没什么大不了的。
猜你喜欢
  • 1970-01-01
  • 2015-05-26
  • 2014-10-23
  • 2016-03-28
  • 2013-03-02
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多