在 Greasemonkey 腳本中捕獲 URL 更改
在 Greasemonkey 腳本中,通常需要使用事件監視 URL 修改。然而,輪詢或逾時方法可能並不理想。這是一個利用 MutationObservers 無縫檢測和處理 URL 變更的解決方案。
要實作此方法,請依照下列步驟操作:
-
初始化DOM 引用變數:
- 初始化一個變數來保存原始URL:var oldHref = document.location.href;
- 選擇用於MutationObserver 監控的body 元素:var bodyList = document.querySelector( 'body');
-
建立一個MutationObserver:
- 使用回調函式實例化一個MutationObserver,當URL 變更: varobserver = newtationObserver(f. .. });
-
設定MutationObserver 選項:
- 設定者監聽子樹變化與子樹變化: var config = { childList: true, subtree: true };
-
將觀察者加入DOM :
將觀察者加入到DOM :
-
將觀察者加入到DOM :
將觀察者加入到DOM>開始觀察body 元素的變化:observer.observe(bodyList, config);
句柄URL回呼中的變更:
句柄URL回呼中的變更: 在觀察者回呼中,檢查URL 變更並執行必要的操作: if (oldHref != document.location.href) { ... }此解決方案利用MutationObservers,它提供了一種有效的方法來監視DOM 更改,包括由URL 修改引起的更改。它避免了輪詢或逾時方法,確保即時檢測 URL 變更並存取指向修改後 URL 的文件的 DOM。
以上是如何使用 MutationObservers 高效能擷取 Greasemonkey 腳本中的 URL 變更?的詳細內容。更多資訊請關注PHP中文網其他相關文章!