Есть ли способ отловить событие, вызванное нажатием кнопки закрытия окна подтверждения геолокации? - PullRequest
0 голосов
/ 23 декабря 2018

Наш код имеет запрос геолокации к браузеру, и IE показывает всплывающее окно подтверждения для пользователя, чтобы выбрать опцию.Если пользователь нажал на крестовую кнопку [X] в окне, ничего не происходит.Есть ли способ захвата события ??

enter image description here

Ответы [ 3 ]

0 голосов
/ 29 декабря 2018

На самом деле Оливер означает, что до того, как вы нажмете кнопку X, вы смогли получить сообщение об ошибке.ошибка получения сообщения об ошибке после navigator.geolocation.getCurrentPosition не удалось получить информацию о местоположении.вы можете обнаружить, что окно изменения появилось до нажатия кнопки X, и вы можете добавить их код, если вам не удалось найти местоположение. enter image description here

0 голосов
/ 15 января 2019

мы получаем это двойное подтверждение, что IE не поддерживает захват этого события, извините за неудобства, которые могут быть вызваны этим.Между тем, не уверен, что следующий обходной путь может помочь вам.use "a = navigator.geolocation.getCurrentPosition (success);"вместо "navigator.geolocation.getCurrentPosition (success, error, options);"и затем вручную проверяет, является ли значение NULL нулевым, если оно равно NULL, что означает, что клиент не был готов поделиться местоположением.это нормально для тебя?

спасибо

0 голосов
/ 23 декабря 2018

Сценарий ниже запускается при загрузке страницы и просит пользователя использовать их местоположение.Я просто добавил небольшой кусочек кода из примера документации , чтобы проверить код ошибки - Код ошибки 1 предназначен для разрешения, которому отказано ..

Существует несколькопричины, по которым в доступе может быть отказано , например, здесь во фрагментах кода был возвращен код ошибки 1, но из-за переполнения стека, запрещающего использование функции геолокации политикой, аналогично JSFiddle.

Вместо этого вы можете использовать сообщение об ошибке, которое представляется более точным.В разных браузерах сообщения об ошибках немного различаются:

  • «Географическое положение пользователя отклонено» (Safari и Chrome)
  • «Запрос геолокации пользователя запрещено» (Firefox).

Вместо этого вы можете использовать следующую проверку сообщения об ошибке, а не код:

if ( err.message == "User denied Geolocation" || err.message == "User denied geolocation prompt" ) {

  // Your code goes here

}

Пример Javascript

Пожалуйста, посмотрите здесь

var options = {
  enableHighAccuracy: true,
  timeout: 5000,
  maximumAge: 0
};


function success(pos) {
  var crd = pos.coords;

  console.log('Your current position is:');
  console.log(`Latitude : ${crd.latitude}`);
  console.log(`Longitude: ${crd.longitude}`);
  console.log(`More or less ${crd.accuracy} meters.`);

}

function error(err) {

  // Check for permission denied error
  if (err.code == 1) {

    alert("Permission denied to use location");
    // Add your code here

  } 

  console.warn(`ERROR(${err.code}): ${err.message}`);


}

navigator.geolocation.getCurrentPosition(success, error, options);
...