如上图所示,在切换iframe地址后,在onload方法中,获取当前iframe的路径(我们的项目会在地址中带入当前页面的moduleid,可通过此参数获取该页面的所有信息),在这里对面包屑进行业务逻辑处理。这样,即使使用浏览器的前进、后退按钮,该面包屑的显示路径也是正确的。缺点是,面包屑的改变有延迟,会在iframe页面加载完成后才会改变。
在该系统中,若登录后,不允许由于浏览器的前进、后退按钮的点击,而后退到登录页。做如下代码的操作。
function watchBackBtn() {
window.history.pushState(null, null, location.href);
window.addEventListener('popstate', (e) => {
window.history.forward()
history.back()
},false);
}
在页面加载后,执行此方法,可阻止浏览器的后退按钮,退回到登录页。你页可以在这个监听方法中做一些其它的业务逻辑。注意:popstate,这个只能监听浏览器点击了前进、后退按钮,但不能分辨出是点了前进按钮,还是后退按钮。