버튼을 사용하여 onclick을 호출하여 사용자 위치를 검색 한 다음 해당 위치를 사용하여 다른 위치로 전화를 걸어 근처 위치 목록을 검색합니다. 어떤 이유로 인해 Geolocation 성공 방법이 두 번째 클릭시 두 번 호출됩니다.이 자바 스크립트가 두 번 호출되는 이유는 무엇입니까?
그래서 페이지를로드하고 버튼을 클릭하고 내 위치 사용 권한을 허용하면 인접한 위치를 얻기 위해 하나의 아약스 요청을합니다. 이것은 잘 작동합니다.
버튼을 다시 클릭하고 내 위치를 다시 사용할 수있는 권한을 허용하면 위치를 얻기 위해 하나의 아약스 요청을하고 ~ 2 초 정도 기다린 다음 허락없이 동일한 좌표를 사용하여 다시 요청할 수 있습니다. 따라서 성공 방법은 두 번 호출해야하지만 왜 확실하지 않습니다.
$("#FindLocation").click(function() {
myScript.findNearbyLocations(displayData, displayError);
});
이 클릭 기능은 두 번 호출되지 않으며 displayData 및 displayError의 모든 코드를 주석 처리했습니다.
findNearbyLocations: function (onSuccess, onFailure) {
if (navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(function (position) {
alert('This is getting called twice except on the initial call.');
myScript.findStores(position.coords.latitude, position.coords.longitude, onSuccess, onFailure);
}, function() {
onFailure(true);
});
}
}
누구나 내가 잘못 본 곳을 볼 수 있습니까?
편집 : 마크 업이 문제라고 생각하지 않습니다. 테스트 용 기본 웹 페이지 만 사용하고 있습니다. 현재에는 스타일링이나 다른 요소가 없습니다.
<form id="form1" runat="server">
<div>
<MyControls:Search ID="Search" runat="server" />
</div>
</form>
및 사용자 정의 컨트롤
내가 이런 일을 발견 할 때마다
<script type="text/javascript">
$(document).ready(function() {
$("#FindLocation").click(function() {
myScript.findNearbyLocations(displayData, displayError);
});
});
</script>
<input type="button" id="FindLocation" value="Find Location" />
<div id="results">
</div>
마지막 줄에는 false가 아닌가? – DOK
@DOK인데, 이는 그의 onFailure 메소드가 전달 된 매개 변수로 무엇을하는지에 달려 있습니다. – CaffGeek
@DOK, 아니요,이 함수는 브라우저가 navigator.geolocation funcationality를 지원하는지 여부 만 결정합니다. if 문을 작성 했으므로 지원되는 것으로 알고 있지만 사용자가 위치를 사용하기 위해 액세스를 거부했을 수 있습니다. – Brandon