Javascript 单击缺货变体时,产品URL不会更改-Shopify
在Shopify商店中,我有一些产品有缺货变体,除了选择缺货变体时url不会更改外,其他一切都很好。尽管“购买”按钮从“购买”更改为“不可用” 以下产品就是一个明显的例子: *唯一可供选择的是42号,其余的都脱销了。正如你所看到的,url并没有改变。即使变体不可用,我如何更新该url 这似乎并不重要,只是我安装了一个通知我应用程序,只有在检测到所选的变体缺货时才会显示弹出窗口。因此是Javascript 单击缺货变体时,产品URL不会更改-Shopify,javascript,html,shopify,liquid,Javascript,Html,Shopify,Liquid,在Shopify商店中,我有一些产品有缺货变体,除了选择缺货变体时url不会更改外,其他一切都很好。尽管“购买”按钮从“购买”更改为“不可用” 以下产品就是一个明显的例子: *唯一可供选择的是42号,其余的都脱销了。正如你所看到的,url并没有改变。即使变体不可用,我如何更新该url 这似乎并不重要,只是我安装了一个通知我应用程序,只有在检测到所选的变体缺货时才会显示弹出窗口。因此是 这可能是一个愚蠢的问题,但我无法找到解决办法。谢谢您的帮助。您的商店使用了相当标准的主题风格。长话短说,您应该查
这可能是一个愚蠢的问题,但我无法找到解决办法。谢谢您的帮助。您的商店使用了相当标准的主题风格。长话短说,您应该查找名为selectCallback的函数,并添加一行代码,以便在变量不可用的情况下更新历史状态 我查看了一下您的店面,发现selectCallback函数出现在主HTML文档中,而不是资产文件夹中的脚本文件中。这通常意味着您可以在与产品表单相同的代码段中找到函数 函数开头附近有一个部分,渲染时如下所示:
if (variant.available) {
// We have a valid product variant, so enable the submit button
addToCart.removeClass('disabled').removeAttr('disabled').val(window.inventory_text.add_to_cart);
} else {
// Variant is sold out, disable the submit button
addToCart.val(window.inventory_text.sold_out).addClass('disabled').attr('disabled', 'disabled');
}
在那里禁用“添加到购物车”按钮后,可以添加一行代码以使用正确的URL更新历史记录状态。像这样的事情应该可以做到:
if (history.replaceState) {
var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + '?variant=' + variant.id;
window.history.replaceState({path:newurl}, document.title, newurl);
}
我对这些历史状态的东西是个业余爱好者——请在上阅读更多内容,您在这里需要自己。如果没有与您的问题相关联的代码显示您自己尝试过某件事情,我们无法为您提供解决方案。目前,您正在寻找人来调试您的代码,这不是StackOverflow的目的。请从呈现所有大小的主题添加您的液体代码。在另一种情况下,@drip是正确的,没有人能帮助你