У меня есть URL электронной коммерции Shopify, который мне нужно проверить на наличие определенной строки, чтобы определить, менять валюту или нет. Когда пользователь попадает на сайт, URL-адрес, например, https://www.myshop.com.
На панели навигации есть кнопки, которые позволяют пользователю перейти с валюты по умолчанию в долларах США на свою местную валюту. Это встроенная функция Shopify, которая требует, чтобы вы добавили ? Currency = GBP (например, в британских фунтах) к URL.
Я проверяю, есть ли строка ? Currency = существует, и если это так, значит, пользователь уже выбрал валюту, но хочет изменить ее снова. Поэтому я убираю 13 символов с начала ? , а затем заменяю его новой строкой валюты.
Проблема в том, что кто-то заходит на сайт изобъявление, URL-адрес может выглядеть как https://www.myshop.com? HkuhJKh6876MJ .
Затем я должен изменить URL-адрес валюты на & вместо? Я могу перебрать строку и проверить наличие более 1 ? , а затем изменить URL-адрес, но он выглядит запутанным,Есть ли лучший способ сделать это?
Ниже приведен мой текущий код для проверки подстроки ? Currency = , удаления и замены ее, если она существует, нановая валюта.
<input type="button" value="Show USD" onclick="showUSD()">
<input type="button" value="Show GBP" onclick="showAUD()">
<script>
function showUSD() {
var changeToCurrency = "USD"; // Set selected currency
checkForSubstring(changeToCurrency); // Check for '?currency=' substring
}
function showGBP() {
var changeToCurrency = "GBP";
checkForSubstring(changeToCurrency);
}
// Check for substring
function checkForSubstring (newCurrency) {
var urlString = window.location.href + "";
var currencySubstring = "?currency=";
if ((urlString.includes(currencySubstring))) {
sliceURL(urlString, currencySubstring, newCurrency);
}
else {
alert("Doesnt contain substring. \nLoading new URL.");
window.location.replace(urlString + currencySubstring + newCurrency);
}
}
// Slice URL
function sliceURL (originalURL, stringToSlice, currency) {
var n = originalURL.indexOf(stringToSlice); // Get position of substring
// Slice substring from URL
var S = originalURL + "";
var bindex = n;
var eindex = n + 13;
S = S.substr(0, bindex) + S.substr(eindex);
// Reload new URL
reloadURL(S, stringToSlice, currency);
}
// Reload URL
function reloadURL(baseURL, stc, currency) {
window.location.replace(baseURL + stc + currency);
}
</script>