Вы не можете заставить значение document.referrer
быть чем-то конкретным из перезагрузки. Но есть обходные пути.
Быстрая, ненавязчивая техника заключается в сохранении этого состояния в пользовательских sessionStorage или localStorage.
// Get the last known referrer
const referrer = JSON.parse(localStorage.getItem('myApp')).referrer;
// Save the current referrer.
localStorage.setItem('myApp', JSON.stringify({
referrer : document.referrer
}));
Вы также можете связать некоторое состояние с перезагрузкой, сохранив его в строке запроса или идентификаторе фрагмента.
const referrer = document.referrer;
if (referrer) {
let query = location.search;
if (query) {
query += '&';
}
query += 'referrer=' + encodeURIComponent(referrer);
location.search = query; // reloads the page
}
Однако, если у вас нет большого контроля над содержанием страницы, строка запроса подход может быть проблематичным, так как некоторые приложения (фронтальные и фоновые), которые видят запрос будут думать, что они должны сделать что-то особенное. Таким образом, у него есть потенциал для непредвиденных побочных эффектов.
Возможный дубликат [Как вручную установить заголовок REFERER в Javascript?] (Http://stackoverflow.com/questions/9580575/how-to-manually-set-referer-header-in-javascript) –