当用户访问我的网站时,我检查是否在PHP中设置了位置 session 。如果没有设置用户位置中的 session ,我会将其重定向到www.domain.net/location。在此页面上,有许多选项供用户选择位置。如果浏览器允许,则选项之一是使用浏览器进行设置。下面的代码非常有效。

我遇到的问题是,一旦用户允许浏览器共享位置,这似乎就永远设置了。在用户浏览时,他们可能决定更改其位置,因此,他们然后单击按钮再次进入www.domain.net/location页面。不会弹出任何东西,它会自动选择浏览器的位置并重定向它们。页面上还有其他位置选项,包括可点击的 map ,我确实需要能够重置,过期,删除,强制执行某些操作,以便浏览器再次询问用户是否要使用浏览器设置位置或允许使用用户使用其他选项之一。

我唯一想到的就是将下面的实际Javascript移到另一页上,并且在www.domain.net/location页面上还有另一个按钮,上面写着“使用我的精确位置”之类的内容,然后将其链接到下面的JS 。

有谁知道重置此方式或其他方式的另一种方法?

<script type="text/javascript" charset="utf-8">


    function findLocation()
    {
      var options = {timeout: 60000};
      navigator.geolocation.getCurrentPosition(foundLocation, noLocation, options);
    }

    function foundLocation(position)
    {
      var lat = position.coords.latitude;
      var lng = position.coords.longitude;

      //alert('Found location: ' + lat + ', ' + lng);
      window.location = "http://www.domain.net/?lat=" + lat + "&lng=" + lng;
    }

    function noLocation()
    {
      alert('Could not find location');
      window.location = "http://www.domain.net/location";
    }

    findLocation();


  </script>

最佳答案

这是每个浏览器的设置,而不是您可以在脚本端控制的设置。您可能会做的是提供一个链接such as this one,该链接说明了如何为给定浏览器更新特定网站的地理位置设置。

看来您可以通过链接到/location或类似的方法来解决特定的问题,而不是链接到/location?update。本质上,请转到位置页面,但添加一些阻止自动重定向的内容,以便用户可以对其位置做出不同的决定。

10-07 13:32
查看更多