0

在我的網站上,我通過Google跟蹤代碼管理器加載了一堆跟蹤器,其中包括Google Analytics和Chartbeat,以及一些DFP廣告管理系統廣告。如何調試哪個腳本嘗試使用Geolocation API?

僅在移動設備上,當有人訪問我的網站時,他們會得到「example.com想使用您的位置」通知,但我無法確定嘗試訪問該信息的內容。

如何調試哪個腳本嘗試使用Firefox或Chrome使用Geolocation API?

回答

2

Geolocation API有一個函數叫做getCurrentPosition,這就是調用的函數。

如果您不知道調用發生在哪裏,因爲您有大量的代碼庫,或者發生在客戶端庫中,那麼可能很難找到。

一個選項是在「來源」面板中搜索解決方案。爲此,您可以使用快捷Cmd的 + 選項 + ˚F(Mac)或按Ctrl + + ˚F(Windows)中,然後搜索 「地理位置」 或API調用的一部分。您應該在面板中看到結果列表。

另一個有用的解決方案是我喜歡打電話給Debugging JavaScript by Redefining Functions的方法。這個想法是存儲一個原始函數的副本,覆蓋它並注入調試邏輯,然後從當前上下文中調用原始函數。

使用這個,我們可以在getCurrentPosition函數中注入一個debugger語句,這樣每當它被調用時,調試器就會中斷,你將在DevTools中有一個調用堆棧。

var oldGetCurrentPosition = navigator.geolocation.getCurrentPosition; 

navigator.geolocation.getCurrentPosition = function() { 
    debugger; 
    return oldGetCurrentPosition.apply(this, arguments); 
} 

我將在控制檯運行此,使用片段優選地,以避免出現在生產此調試代碼。好的是邏輯不破壞原始代碼,如果它。