Shoptet平台window.location.href.match匹配首页失效问题求助
解决Shoptet首页仅隐藏指定元素的问题
问题原因
- URL正则匹配不完整:你的正则
^https://<siteid>.myshoptet.com$只匹配不带末尾斜杠的首页URL,但实际访问时,浏览器可能自动补全为https://<siteid>.myshoptet.com/(带斜杠),导致匹配失败。 - 脚本执行时机过早:如果脚本在DOM元素加载完成前运行,jQuery选择器无法找到目标元素,
hide()操作自然不会生效。
解决方案
方案1:修正正则表达式(兼容带/不带末尾斜杠)
将正则改为允许末尾的可选斜杠,并确保脚本在DOM就绪后执行:
<script> $(document).ready(function() { // 匹配带或不带末尾斜杠的首页URL var homeRegex = /^https:\/\/<siteid>.myshoptet.com\/?$/; if (window.location.href.match(homeRegex)) { $('.detail-parameters').hide(); $('.availability-value').hide(); $('.add-to-cart').hide(); } }); </script>
方案2:通过路径名判断更可靠
直接判断当前页面的路径是否为根路径,这种方式不受URL域名或参数影响,更稳定:
<script> $(document).ready(function() { // 路径为空或仅为根斜杠时判定为首页 if (window.location.pathname === '' || window.location.pathname === '/') { $('.detail-parameters').hide(); $('.availability-value').hide(); $('.add-to-cart').hide(); } }); </script>
额外说明
- 替换代码中的
<siteid>为你实际的Shoptet站点ID。 - 确保页面已正确加载jQuery(子页面功能正常说明jQuery是可用的,无需额外处理)。
内容的提问来源于stack exchange,提问作者Samuel Kurej
相关产品推荐
相关产品推荐

