Хотя я чувствую, что ответ alemjerus идет в правильном направлении, он не работает, когда новый URL указывает на другую страницу , по крайней мере на моем Chrome v40.
Пример, когда новый URL просто добавляет якорь, он отлично работает:
var redirectToURL = '/questions/2319004/javascript-how-to-truly-reload-a-site-with-an-anchor-tag#answer-28621360';
window.location.href = redirectToURL;
window.location.reload(true);
Но когда он указывает на другую страницу, пользователь все равно остается на текущей странице после перезагрузки. (Запустите следующие коды в пакете, без задержки между location.href=
и location.reload
):
var redirectToURL = 'http://stackoverflow.com';
window.location.href = redirectToURL;
window.location.reload(true);
В этом случае удалить location.reload
работает. Поэтому я могу проверить, есть ли новый URL на той же странице:
var urlParser = document.createElement('a');
urlParser.href = redirectToURL;
if (urlParser.origin + urlParser.pathname === location.origin + location.pathname) {
window.location.reload(true);
}
Проверено на Chrome и Safari, не пробовал IE. Пожалуйста, дайте мне знать, если он не работает ни в одном крупном браузере.