簡體   English   中英

如何調試哪個腳本試圖使用Geolocation API?

[英]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.

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