почему мой test_loc.php перезагружается сам - PullRequest
0 голосов
/ 19 октября 2018

Я попытался взять координаты геолокации и отправить их на url при загрузке страницы.

Я использовал функцию onload в javascript.Когда я запускаю js, он работает, но постоянно обновляется.

<script>

var x = document.getElementById("demo");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else { 
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
window.onload = getLocation;

function showPosition(position) {
 window.location.href = "test_loc.php?latitude=" + position.coords.latitude +
  "&longitude=" + position.coords.longitude;

}
</script>

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

Поскольку вы передаете showPosition в качестве успешного обратного вызова на geolocation.getCurrentPosition, который затем устанавливает location.href, который перезагружает страницу.

0 голосов
/ 19 октября 2018

Каждый раз, когда вы загружаете страницу, вы вызываете getLocation () через событие «onload», которое, в свою очередь, вызывает getCurrentPosition (), которое, в свою очередь, перезагружает страницу с помощью window.location.href.Затем, когда страница перезагружается, событие onload запускается снова, и все начинается снова с самого начала.

Вы в основном создали бесконечный цикл.

Действительно ли необходимо обновить страницу только для того, чтобы передать координаты?Если вам нужно отправить их на сервер, рассмотрите возможность использования AJAX.

0 голосов
/ 19 октября 2018

Перезагрузка запускается следующей строкой, к которой добавляется becoz latitude и longitude асинхронного вызова:

window.location.href = "test_loc.php?latitude=" + position.coords.latitude + "&longitude=" + position.coords.longitude;

Что вы можете сделать, вы можете проверить, существуют ли параметрыи вы можете остановить обратный вызов.Пожалуйста, посмотрите это: Как получить значение из параметров GET?

С ответом на другой вопрос вы можете реализовать что-то вроде:

function showPosition(position) {
  if (typeof parse_query_string("latitude") == "undefined")
    window.location.href = "test_loc.php?latitude=" + position.coords.latitude + "&longitude=" + position.coords.longitude;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...