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);
}
이 디버깅 코드가 프로덕션에 표시되지 않도록 콘솔에서 스 니펫을 사용하는 것이 좋습니다. 좋은 점은 논리가 원래 코드를 깨뜨리지 않는다는 것입니다.