Я пытаюсь добавить параметр "referer =" к моему URL, соответствующему рефереру нового сеанса.
Я использовал часть кода из thisтема ... но продолжает перезагружать страницу в цикле ... тогда URL выглядит так:
https://example.com?refere=facebookreferer=facebookreferer=facebook
Примечание:
Я использовал это решение 1:
function addOrUpdateUrlParam(name, value)
{
var ref = document.referrer;
var refsplit = ref.split(".")[1];
var href = window.location.href;
var regex = new RegExp("[&\\?]" + name + "=");
if(regex.test(href))
{
regex = new RegExp("([&\\?])" + name + "=\\d+");
{
else
{
if(href.indexOf("?") > -1)
window.location.href = href + "&" + name + "=" + value;
else
window.location.href = href + "?" + name + "=" + value;
}
if (refsplit != "example") {
return addOrUpdateUrlParam("referer", refsplit);
}
}
И это решение 2:
function () {
var ref = document.referrer;
var refsplit = ref.split(".")[1];
if (refsplit != "example") {
return location.search += "referer=" + refsplit;
}
}
Редактирование 1 : Благодаря Прасанту Я улучшил код до:
function () {
var ref = document.referrer;
var refsplit = ref.split(".")[1];
var currentUrl = location.href;
var url1 = currentUrl += "?referer="+refsplit;
var url2 = currentUrl += "&referer="+refsplit;
if(currentUrl.indexOf("?") < 0) {
return window.location = url1;
} else {
return window.location = url2;
}
}
Однако он возвращает оба условия:
https://example.com/?referer=facebook&referer=facebook
Редактировать 2 : так что после многих попыток ядостиг этого, работая с параметрами URL-адреса ( location.search ) вместо полного URL-адреса (location.href):
function addRefererParam () {
var ref = document.referrer; //Get Referrer
var refDomain = ref.match(/[^(?:http:\/\/|www\.|https:\/\/)]([^\/]+)/i)[0]; //Extract Referrer Domain name for better readability
var params = location.search; //Get Url parameters
if (refDomain.match(/mydomain|null|undefined/i)) { //check if domain not null or own domain.
return params ;
} else {
return params += "utm_source=" + refDomain; //create new query string with referrer domain
}
}
Однако постоянный запрос не выполняетсячерез просмотр ... как я могу сделать новые параметры постоянными?