当用户访问我的网站时,我会检查我是否在 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
或类似的东西来解决您的特定问题。本质上,转到位置页面,但添加阻止自动重定向的内容,以便用户可以对其位置做出不同的决定。
关于javascript - 如何过期或重置地理位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14956500/