以下情况会导致页面没有上一页的URL:
- 直接在浏览器地址栏中输入地址;
- 使用
location.reload()
刷新(location.href
或者location.replace()
刷新有信息); - 在微信对话框中,点击链接进入微信自身的浏览器;
- 扫码进入QQ或者微信的浏览器;
- 从https的网站直接进入一个http协议的网站
a
标签设置rel="noreferrer"
meta
标签来控制不让浏览器发送referer
;
<meta content="never" name="referrer">
没有上一页时,返回按钮再怎么点击都没有任何反应,用户体验极差
优化建议:如果发现浏览器没有上一页,就把返回按钮的链接改成首页的链接地址
完整范例代码
核心要点:document.referrer 获取前一个访问页面的URL地址
<template> <div> <a href="javascript:history.go(-1)" class="backLink">返回</a> </div> </template> <script> export default { mounted() { if (document.referrer === '') { let backLink = document.getElementsByClassName("backLink"); // 没有来源页面信息的时候,改成首页URL地址 backLink.attr('href', '/'); } }, } </script>