Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击缺货变体时,产品URL不会更改-Shopify_Javascript_Html_Shopify_Liquid - Fatal编程技术网

Javascript 单击缺货变体时,产品URL不会更改-Shopify

Javascript 单击缺货变体时,产品URL不会更改-Shopify,javascript,html,shopify,liquid,Javascript,Html,Shopify,Liquid,在Shopify商店中,我有一些产品有缺货变体,除了选择缺货变体时url不会更改外,其他一切都很好。尽管“购买”按钮从“购买”更改为“不可用” 以下产品就是一个明显的例子: *唯一可供选择的是42号,其余的都脱销了。正如你所看到的,url并没有改变。即使变体不可用,我如何更新该url 这似乎并不重要,只是我安装了一个通知我应用程序,只有在检测到所选的变体缺货时才会显示弹出窗口。因此是 这可能是一个愚蠢的问题,但我无法找到解决办法。谢谢您的帮助。您的商店使用了相当标准的主题风格。长话短说,您应该查

在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是正确的,没有人能帮助你