В моем браузере Chrome (66.0.3359.181 на win 7 64 бит), если я вызываю геолокацию с тайм-аутом, Chrome запрашивает разрешение и отправляет PositionError «Истекло время ожидания» после тайм-аута, даже если я не отвечал наразрешение, тогда как в спецификации W3C указано:
Обратите внимание, что время, потраченное на получение разрешения пользователя, не входит в период, охватываемый атрибутом timeout.Атрибут времени ожидания применяется только к операции получения местоположения.
Firefox 60 работает с W3C с уважением и не выдает ошибку, пока пользователь дает или отклоняет разрешение.
Демонстрация: https://codepen.io/benjamin-chevillon/full/GxPwEp/
navigator.geolocation.getCurrentPosition(
successCallback, errorCallback,
{enableHighAccuracy: false, timeout:10000, maximumAge: 1000*60*3});
В коде ручки:
- Когда я нажимаю «Стратегия 2: getCurrentPosition {enableHighAccuracy: false, время ожидания: 10000, максимум Возраст: 1000 * 60 *3} ", и я не отвечаю на всплывающее окно с разрешениями, и я жду 10 секунд
- Ожидается: ничего не должно происходить
- Наблюдение:
- В Chrome: Iсм. отображаемую ошибку: error {... "code": 3, "message": "Timeout expired"}
- В Firefox: ничего не происходит
Я думаю, что это довольно ново, потому что я не помню, чтобы Chrome действовал так, когда я создавал этот код.
Кто-нибудь знает, почему Chrome действует так?Это ошибка?