我正在研究Shopify项目,并且创建了一个弹出窗口,该弹出窗口在页面加载后显示并要求用户在美国和英国网站之间进行选择。
一旦用户单击其中一个选项,弹出窗口就会关闭(英国)或重定向到美国站点。然后将其存储在cookie
中,因此当他们再次访问该站点时,它们将被再次重定向/弹出窗口不再显示。
这是代码:
<div class="modal fade" id="storeModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<div class="subscription-grid">
<div class="grid__item">
<button type="button" class="close" id="subscription-close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<div class="store_popup_heading">
<h2>TEXT</h2>
</div>
<div class="store_popup_content">
<a href="#" class="store-btn" id="uk-store" onClick="checkCookie2();">{{ settings.store_popup_link_text_1 }}</a>
<a href="#" class="store-btn" id="us-store" onClick="checkCookieUS();">{{ settings.store_popup_link_text_2 }}</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function checkCookieUS() {
Cookies.set('storelocation', 'true', {
expires: 7
});
Cookies.set('storelocationUS', 'true', {
expires: 7
});
}
</script>
<script>
var delayInMilliseconds = 2000
var storelocate = Cookies.get('storelocation');
var storeUS = Cookies.get('storelocationUS');
if (storelocate) {
document.getElementById("storeModal").style.display = "none";
} else {
setTimeout(function() {
document.getElementById("storeModal").style.display = "block";
}, delayInMilliseconds);
}
if (storeUS) {
window.location.href = "https://us.store.com/";
}
</script>
现在这可行,但是我的问题是,例如,如果有人从某个子页面进入https://store.com/collections
,则需要将他们重定向到美国商店的同一子页面,因此https://us.store.com/collections
。
我尝试通过以下方式做到这一点:
if (storeUS) {
window.location.href = "https://us.store.com/{{current_page}}";
}
例如,然后重定向转到https://us.store.com/1
。
任何想法如何做到这一点?
答案 0 :(得分:0)
您需要获取当前页面的pathname
,并将其附加到https://us.store.com/
。
像这样:
if (storeUS){
window.location = "https://us.store.com" + window.location.pathname;
}