[英]How can I debug which script is trying to use the Geolocation API?
在我的網站上,我通過Google跟蹤代碼管理器(包括Google Analytics(分析)和Chartbeat)加載了一堆跟蹤器,以及一堆DoubleClick For Publishers(DFP)廣告。
僅在移動設備上,當有人訪問我的網站時,他們會收到“ example.com想使用您的位置”通知,但我無法確定是什么嘗試訪問該信息。
如何使用Firefox或Chrome調試哪個腳本試圖使用Geolocation API?
Geolocation API有一個名為getCurrentPosition
的函數,即被調用的函數。
如果您不知道調用的位置是因為代碼庫很大,還是在客戶端庫中進行,那么很難找到它。
一種選擇是在“源”面板中搜索解決方案。 您可以使用快捷鍵Cmd + Opt + F (Mac)或Ctrl + Shift + F (Windows)來執行此操作,然后搜索“地理位置”或API調用的一部分。 您應該在面板中看到結果列表。
另一個有用的解決方案是我喜歡通過重新定義函數來調用Debugging JavaScript的方法。 這個想法是存儲原始函數的副本,覆蓋它並注入調試邏輯,然后從當前上下文中調用原始函數。
使用此方法,我們可以將debugger
語句注入到getCurrentPosition
函數中,以便每當調用該語句時,調試器都會中斷,並且您將在DevTools中擁有調用堆棧。
var oldGetCurrentPosition = navigator.geolocation.getCurrentPosition;
navigator.geolocation.getCurrentPosition = function() {
debugger;
return oldGetCurrentPosition.apply(this, arguments);
}
我將在控制台中運行此程序,最好使用一個Snippet,以避免此調試代碼出現在生產環境中。 好處是邏輯不會破壞原始代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.