Можно ли изменить название страницы в истории браузера через JavaScript после загрузки страницы? Должен быть кросс-браузер (конечно) и работать с браузерами, которые не поддерживают API истории HTML5, моим основным целевым браузером является Chrome.
Я пробовал ряд подходов, но никто из них, похоже, не работает надежно. Вот что я пробовал в прошлом (history.js):
<html>
<head>
<title>Standard title</title>
<script src="https://rawgit.com/browserstate/history.js/master/scripts/bundled-uncompressed/html4%2Bhtml5/native.history.js"></script>
</head>
<body>
<script>
window.setTimeout(function(){
document.title = "My custom title";
History.replaceState({}, "My custom title", window.location.href);
}, 3000);
</script>
</body>
</html>
Если я загружу страницу истории в Chrom в течение 3 секунд после загрузки страницы, я вижу Standard title
, через 3 секунды я получаю My custom title
.
Зачем мне это нужно: у меня есть приложение только для JavaScript (Angular 1), которое работает в разных средах (dev, test, production). Я хотел бы отобразить заголовок вроде MyApp (<environmentName>)
, но я не хочу создавать отдельные версии моего приложения для каждой среды. Вместо этого приложение может запрашивать информацию об окружающей среде из бэкэнд через AJAX и обновлять заголовок страницы. Все это прекрасно работает (заголовок страницы обновляется), но история браузера по-прежнему показывает "стандартное" название.
Есть ли способ изменить название страницы в истории браузера?