应用场景:一般网页游客和登录用户看到的内容是有区别的,如果一个未登录的用户在看到登录提示后跳转到登录界面登录,那么登录成功后怎么返回到该页面呢?
假设用户在 www.example.com/a.html 看到登录提示,然后点击登录跳转到 www.example.com/login.html,登录界面使用ajax验证用户登录信息,当返回信息为成功时,在回调函数里要做这些逻辑的处理:
1.判断document.referrer是否为空,若为空本页面就不是从其它页面跳转过来的,就将页面跳转至网站首页
2.若document.referrer不为空,则需要判断前一个页面是否是本站点的页面,以免跳到其它站点去了,如果是其它站点则跳转至首页;
3.若document.referrer不为空且为本站点页面,则需要跳转至该页面
location.href = URL的方式最终以URL值调用assign()方法!
location.assign() 方法加载新的文档。
window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。
因此在登录成功的回调函数里执行下列操作就可以实现登录跳回刷新页面了
var prevLink = document.referrer;
if($.trim(prevLink)==''){
location.href = 'www.example.com/index.html';
}else{
if(prevLink.indexOf('www.example.com')==-1){ //来自其它站点
location.href = 'www.example.com/index.html';
}
if(prevLink.indexOf('register.html')!=-1){ //来自注册页面
location.href = 'www.example.com/index.html';
}
location.href = prevLink;
}