Итак, у меня есть параметр "реферер" для источника трафика:
И параметр "сайт" для страны сайта:
Но на конкретной платформе, с которой я работаю, через навигацию можно передать только параметр «referer». (это приложение является удаленным, и я не могу получить доступ к источникам).
Однако мне нужно оба параметра для передачи... моя идея состоит в том, чтобы изменить параметр «referer» при первом просмотре страницы, чтобы он стал:
Я пробовал эту функцию:
<script>
function Replace() {
var paramSite = {{Get Site}};
var paramRef = {{Get Referer}};
var url = window.location.toString();
var newUrl = url.replace(/referer = {{Get Referer}}/, "referer = {{Get Referer}}-{{Get Site}}");
return newUrl.reload
}
<script>
Он работает в тестовой переменной... но я не могу заставить его работать на сайте.
🤔 А знаете ли вы, что...
JavaScript поддерживает работу с различными форматами данных, такими как JSON и XML.
Можете ли вы попробовать этот метод для обновления строки запроса URL-адреса.
function updateQueryStringParameter(uri, key, value) {
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator = uri.indexOf('?') !== -1 ? "&" : "?";
if (uri.match(re)) {
return uri.replace(re, '$1' + key + " = " + value + '$2');
}
else {
return uri + separator + key + " = " + value;
}
}
Как добавить или обновить параметр строки запроса?
Вы можете использовать эту функцию, чтобы получить значение параметра из URL-адреса.
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
Я создал пример кода, чтобы достичь требуемого.
var paramSite = "https://example.com?site=us"
var paramRef = "https://example.com?referer=origin"
var site = getParameterByName("site", paramSite)
var ref = getParameterByName("referer", paramRef)
var newUrl = updateQueryStringParameter(paramRef, "referer", ref + "-" + site)