点击按钮

时间:2017-12-07 12:46:15

标签: javascript jquery location

我正在使用javascript / jquery基于用户当前位置构建Web应用程序。如何在所有浏览器上浏览我的应用程序时获取用户的当前位置?

4 个答案:

答案 0 :(得分:2)

  

您可以使用地理位置对象

     

查看this MSDN Geolocation Article或Mozilla navigator.geolocation Docs

1。检查浏览器兼容性

if ("geolocation" in navigator) {
  /* geolocation is available */
} else {
  /* geolocation IS NOT available */
}

2。获取当前位置

navigator.geolocation.getCurrentPosition(function(position) {
  do_something(position.coords.latitude, position.coords.longitude);
});

3。注意变化

var watchID = navigator.geolocation.watchPosition(function(position) {
  do_something(position.coords.latitude, position.coords.longitude);
});

基本工作示例

var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
}
<p>Click the button to get your coordinates.</p>

<button onclick="getLocation()">Try It</button>

<p id="demo"></p>

另外,请查看MSDN的this example on JSFiddle,它稍微全面一些。

注意:地理位置仅适用于SSL sites with secure context

浏览器支持

您还要求它在所有浏览器中使用。与大多数功能一样,这是不可能的。但您可以检查用户浏览器是否支持navigator.geolocation,如果没有则显示相应的消息。

查看https://caniuse.com/#search=geolocation以查看当前浏览器对地理位置的支持。但总的来说,它得到了支持:

  • IE9 +
  • Edge 13 +
  • FF 3.5 +
  • Safari 5.0 +
  • Chrome 5.0 +
  • Opera 11.5,12.1,16.6 +
  • iOS Safari 3.2 +
  • 适用于操作系统版本2.1 +
  • 的Android默认浏览器

希望有所帮助

答案 1 :(得分:0)

您可以使用地理定位API ..有关详细信息,请参阅此内容 https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation

答案 2 :(得分:0)

我认为类似下面的代码可以提供帮助。你可以调用getLocation(),它会将位置保存在_position变量中,以后可以使用。

var _position;

function getLocation(){
    navigator.geolocation.getCurrentPosition(onSuccess, onError);
}

var onSuccess = function(position) {
    _position = position;
};

function onError(error) {
    alert('Error: ' + error.message);
}

答案 3 :(得分:0)

您可以使用所有现代浏览器中提供的Geolocation.getCurrentPosition API。通过使用此功能,您可以通过最佳方式为其设备获取用户的位置,即通过GPS或IP。