瀏覽器偵測網址改變, detect url change in browser javascript

網路上很多說法是用 popstate event

如果用AJAX (XHR)更新網頁內容,再用 history.pushState() 更新網址會抓不到


解法1 定期檢查


用 setInterval() 去定期檢查 window.location.href,消耗不必要的資源


解法2 事件驅動

透過browser extension去接收 tabs.onUpdated event

這個event只能在background page中收到,再透過tabs.sendMessage()丟去content script 的runtime.onMessage就能對網頁內容作處理了


webNavigation
webRequest
在某些情況也可以用來解決AJAX更新網頁的偵測

我不想在extension要太多權限就用,manifest_version 3新加的 host_permissions限定只對目標網域處理

host_permissions 似乎在多數browser是optional permission...不能指定有點麻煩

留言

這個網誌中的熱門文章

OBS 抓不到畫面, 視窗, 遊戲擷取, 黑或白畫面, 當掉 ,卡住, black/white screen, window game capture, crash, freeze

優化實況(一) OBS設定 streaming settings

OBS plugin obs-text 顯示播放中音樂, display playing music