Я написал эту функцию для проверки обоих методов, используя старые window.performance.navigation
и новые performance.getEntriesByType("navigation")
одновременно:
function navigationType(){
var result;
var p;
if (window.performance.navigation) {
result=window.performance.navigation;
if (result==255){result=4} // 4 is my invention!
}
if (window.performance.getEntriesByType("navigation")){
p=window.performance.getEntriesByType("navigation")[0].type;
if (p=='navigate'){result=0}
if (p=='reload'){result=1}
if (p=='back_forward'){result=2}
if (p=='prerender'){result=3} //3 is my invention!
}
return result;
}
Описание результата:
0: нажатие на ссылку, ввод URL-адреса в адресной строке браузера, отправка формы, нажатие на закладку, инициализация с помощью операции сценария.
1: нажатие на перезагрузкуили с помощью Location.reload()
2: Работа с историей браузера (Bakc and Forward).
3: предварительная обработка, например <link rel="prerender" href="//example.com/next-page.html">
4: любой другой метод.