簡體   English   中英

如何在WKWebView中檢測history.pushstate

[英]How to detect history.pushstate in WKWebView

我使用Swift開發了混合iOS應用程序,並希望在WKWebView中檢測history.pushstate()。 我確實覆蓋了WKWebView的方法,但我無法檢測到任何東西。

有沒有辦法或技巧來檢測history.pushstate()

這當然是一種解決方法,但如果允許編輯內置對象的屬性(如在大多數瀏覽器中),則可以包裝這兩個函數並使用攔截處理程序來跟蹤它們的調用時間:

 function track (fn, handler) { return function interceptor () { handler.apply(this, arguments) return fn.apply(this, arguments) } } history.pushState = track(history.pushState, function (state, title, url) { // do something with `state, `title`, and `url` console.log('pushState called with:', { state: state, title: title, url: url }) }) history.replaceState = track(history.replaceState, function (state, title, url) { // do something with `state, `title`, and `url` console.log('replaceState called with:', { state: state, title: title, url: url }) }) history.pushState(null, 'Title 1', '/example-page') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM