请问有没有办法可以用javascript 去监听 浏览器的url 变化呢?想实现的功能有 1阻止某些url 跳转,在在黑名单上的。2某些状态下不能跳转。例如加载某些ajax资源时不允许跳转。
但一定要是全局的,项目已经形成,跳转方式五花八门的有 a 标签的 有 window.location.href 的,有后端的...所以只能只能取共通的,就是改变 url 这个动作做回退,javascript 能实现吗?还是有什么其他的方法实现
只有这个事件onbeforeunload,但是不能进行随意控制试图使用js来劫持用户浏览器的行为终究是会失败的,还是在服务器端进行访问控制才是正道
如果是自己的项目.可以做个统一的跳转方法(fn)....
StackOverflow答案
补充一楼的说法,onbeforeunload虽好,但只有PC端支持,不适用于移动端。单一维度来看,至多只能监听『页面是否注销』,无法监听『页面是否后退』;即使你使用了history.length属性,由于history.length只记录总长度的特性,还是无法知晓页面是往前走了还是往后走了。至于移动端的前进和后退,纯js无法实现,但可以借助native来做到,请参考我这篇分析为什么Web App的返回逻辑如此复杂 | louis blog
onbeforeunload
history.length
只有这个事件onbeforeunload,但是不能进行随意控制
试图使用js来劫持用户浏览器的行为终究是会失败的,还是在服务器端进行访问控制才是正道
如果是自己的项目.可以做个统一的跳转方法(fn)....
StackOverflow答案
补充一楼的说法,
onbeforeunload
虽好,但只有PC端支持,不适用于移动端。单一维度来看,至多只能监听『页面是否注销』,无法监听『页面是否后退』;
即使你使用了
history.length
属性,由于history.length
只记录总长度的特性,还是无法知晓页面是往前走了还是往后走了。至于移动端的前进和后退,纯js无法实现,但可以借助native来做到,请参考我这篇分析为什么Web App的返回逻辑如此复杂 | louis blog