搜索

首页  >  问答  >  正文

前端 - javascript 全局监听 地址 url 变化

请问有没有办法可以用javascript 去监听 浏览器的url 变化呢?
想实现的功能有
1阻止某些url 跳转,在在黑名单上的。
2某些状态下不能跳转。例如加载某些ajax资源时不允许跳转。

但一定要是全局的,项目已经形成,跳转方式五花八门的
有 a 标签的 有 window.location.href 的,有后端的...
所以只能只能取共通的,就是改变 url 这个动作做回退,javascript 能实现吗?
还是有什么其他的方法实现

漂亮男人漂亮男人2774 天前677

全部回复(4)我来回复

  • 天蓬老师

    天蓬老师2017-05-19 10:40:49

    只有这个事件onbeforeunload,但是不能进行随意控制
    试图使用js来劫持用户浏览器的行为终究是会失败的,还是在服务器端进行访问控制才是正道

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:40:49

    如果是自己的项目.可以做个统一的跳转方法(fn)....


    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:40:49

    StackOverflow答案

    回复
    0
  • 天蓬老师

    天蓬老师2017-05-19 10:40:49

    补充一楼的说法,onbeforeunload虽好,但只有PC端支持,不适用于移动端。
    单一维度来看,至多只能监听『页面是否注销』,无法监听『页面是否后退』;
    即使你使用了history.length属性,由于history.length只记录总长度的特性,还是无法知晓页面是往前走了还是往后走了。
    至于移动端的前进和后退,纯js无法实现,但可以借助native来做到,请参考我这篇分析为什么Web App的返回逻辑如此复杂 | louis blog

    回复
    0
  • 取消回复