搜尋

首頁  >  問答  >  主體

前端 - javascript 全域監聽 位址 url 變化

請問有沒有辦法可以用javascript 去監聽 瀏覽器的url 變化呢?
想實現的功能有
1阻止某些url 跳轉,在在黑名單上的。
2某些狀態下不能跳轉。例如載入某些ajax資源時不允許跳轉。

但一定要是全域的,項目已經形成,跳轉方式五花八門的
有a 標籤的有window.location.href 的,有後端的...
所以只能只取共通的,就是改變url 這個動作做回退,javascript 能實現嗎?
還是有什麼其他的方法實作

漂亮男人漂亮男人2774 天前678

全部回覆(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
  • 取消回覆