Javascript 各种浏览器中的HTML5地理定位API

Javascript 各种浏览器中的HTML5地理定位API,javascript,html,geolocation,Javascript,Html,Geolocation,我在Firefox和IE中使用地理定位API时遇到问题。 每次加载页面时,浏览器都会显示一条消息,要求允许定义我的位置。因此,每次浏览网站页面时,我都必须按“我允许”。我们网站的用户抱怨这种情况,因为这很烦人 有没有办法避免显示此消息?也许我应该使用另一个地理定位API?不可能。这是针对用户的 地理定位支持选择加入。这意味着您的浏览器永远不会强迫您向远程服务器显示当前的物理位置。 不同浏览器的用户体验不同 它被称为 来源于 Q:地理定位听起来很可怕。我能把它关掉吗 A:当您谈论与远程web服务器

我在Firefox和IE中使用地理定位API时遇到问题。 每次加载页面时,浏览器都会显示一条消息,要求允许定义我的位置。因此,每次浏览网站页面时,我都必须按“我允许”。我们网站的用户抱怨这种情况,因为这很烦人


有没有办法避免显示此消息?也许我应该使用另一个地理定位API?

不可能。这是针对用户的

地理定位支持选择加入。这意味着您的浏览器永远不会强迫您向远程服务器显示当前的物理位置。 不同浏览器的用户体验不同

它被称为

来源于

Q:地理定位听起来很可怕。我能把它关掉吗

A:当您谈论与远程web服务器共享物理位置时,隐私是一个明显的问题。地理定位API 明确声明:“用户代理不得将位置信息发送到 未经用户明确许可的网站。”换句话说, 共享您的位置始终是选择加入。如果你不想,你可以 不必

这在每个浏览器中都有不同的处理方式,但在理论上很常见

但是,你可以使用


这不是代码问题。这是一个浏览器问题。 这取决于你需要你的位置。。。如果GPS用于移动应用程序,以下内容将不会有帮助

我已经使用IP计算出位置,虽然这只对查找“国家”而不是城市本身有用

我最近用PHP完成了这项工作。使用完整的PHP需要PHP附加组件“GEOIP”

<?php
//Get users IP address
$ip = $_SERVER['REMOTE_ADDR']
//Get 2 letter country code from IP
$country = geoip_country_code_by_name('$ip');
//If successful...
if ($country) {
//Write the name of the country 
echo 'This host is located in: ' . $country;
}?>

这将写两个字母的国家代码。 更多信息请点击此处

希望这对你有用,取决于你的目标,这可能对你有帮助


因为它并不总是成功的,所以如果不可检索的话,设置一个“备用”默认位置是不值得的

这是一个浏览器安全问题。个人用户可以调整他们的浏览器设置以始终允许地理定位,但这不是你可以通过编程实现的。“我们网站的用户抱怨这种情况,因为这很烦人。”–然后这些用户就开始抱怨自己的愚蠢了–IE和Firefox都提供了始终允许对当前站点进行地理定位的选项。
<?php
//Get users IP address
$ip = $_SERVER['REMOTE_ADDR']
//Get 2 letter country code from IP
$country = geoip_country_code_by_name('$ip');
//If successful...
if ($country) {
//Write the name of the country 
echo 'This host is located in: ' . $country;
}?>