我使用的是Magento 1.6.2,进行了相当多的自定义 - 包括大量修改的购物车模板。
当用户将商品添加到购物车后单击浏览器的"后退"按钮时,我遇到了问题。我只能使用火狐重现此问题。Chrome和IE工作正常。
重现步骤。
- 打开特定的产品页面,单击"添加到购物车"。
- 您将被转到购物车/预览页面。
- 使用浏览器的"后退"按钮返回产品视图。
- "添加到购物车"按钮现在完全不起作用。在具有自定义必需选项的产品上,不会运行验证。真的,什么都没发生。
- 返回到产品目录。找到并返回到之前使用的相同项目。
- 点击"添加到购物车"。一切正常 - 您将被重定向到购物车,并更新数量。
我不知道从哪里开始。有人有什么想法吗?
生产/实时站点: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;
}
但你也必须忍受另一个问题。