请注意:我不是要检测单击后退按钮。我不在乎。
我只想知道他们的页面已加载回导航。如果用户单击后退按钮以建议他们刷新,则我希望在我的应用程序的某个位置向用户显示警告。
编辑:
1)我确实希望页面能够缓存。我们现在生活在一个移动的世界中。不缓存是一个坏习惯。
2)我希望此功能与URL无关。去耦是一个好习惯。
<script>
if (history.state !== null && +history.state < history.length)
{
alert("refresh needed");
history.replaceState(null, "", window.location.href);
}
else
{
history.replaceState(history.length, "", window.location.href);
}
</script>
页面首次加载时,这会将历史记录的当前长度(这也是页面在历史记录中的位置)存储到历史记录本身中,而无需更改浏览器的位置或以其他方式修改历史记录。再次访问时,它会检查该位置是否在历史记录的末尾-如果不是,则存在一些后退导航。然后,它发出警报并清除存储的位置。
优点:
刷新时不触发警报。
如果以后再次访问同一页面或不同页面中的页面,则不会触发警报。
缺点:
无法区分前向导航和后向导航。即,如果用户返回的页面比该页面更远,然后向前浏览,它仍然会发出警报,因为使用了一些向后导航来到达此处。但是,我认为即使在这种情况下,您也希望用户刷新。
仅警报一次。如果用户随后继续前进和后退,它将不会再次发出警报。由于已经通知用户,因此这可能并不重要。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句