【发布时间】:2012-04-01 16:23:39
【问题描述】:
当我尝试测试我的 “navigator.geolocation.getCurrentPosition”网页。这是我的 测试结果及代码:
我的代码:
function detectLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(geocodePosition, onError, { timeout: 30000 });
navigator.geolocation.watchPosition(watchGeocodePosition);
}
else
{
onError();
}
}
此函数在调用“body”onload 事件时运行。我曾尝试将超时更改为 10000 和 20000,但仍然得到相同的结果。我还允许 crome 和 Firefox 获取我的位置。
结果:
- 使用 chrome (v 17.0.963.79 m),结果总是出现 onError 调用 navigator.geolocation.getCurrentPosition 时的函数。
- 使用 Firefox (v 10.0.2),结果总是转到 onError 函数 当 navigator.geolocation.getCurrentPosition 被调用时。
- 使用 IE (v 9),结果非常棒,我得到了当前位置。
在这种奇怪的情况下谁能帮助我?我真的没有任何想法来解决这个问题,我急于我的项目截止日期。之前谢谢。
编辑: 这几天我取得了一些进展,错误代码代码为 2,并带有一条消息 “网络位置提供程序位于 'https://maps.googleapis.com/maps/api/browserlocation/json?browser=chromium&sensor=true ' : 响应格式错误”。还没解决,有大神知道怎么解决吗?
【问题讨论】:
-
您的 if 语句没有任何真正的测试对我来说似乎很不寻常。我希望看到类似 if (navigator.geolocation!=null) 或类似的东西。
-
@Terry 看起来“if”语句没有问题,即使我将其更改为您的建议,这个奇怪的结果仍然存在。你知道为什么只有 IE 才能检索到正确的位置吗?实际上我是印度尼西亚人,我现在的职位在东爪哇。
-
您可能会发现差异取决于您是在 LAN 还是 wifi 上,这会影响您的结果吗?
-
@user920962 这个结果使用了通过 LAN 的 DSL 线路,你能具体说说 wifi 是什么吗?据我所知,在我的国家 wifi 热点只使用了一条 DSL 线路,然后他们使用 wifi 路由器进行传播。如果它是您提到的 wifi,结果将是相同的,但是当您在foursquare 上查看时,它在所有浏览器中都能正常运行。使用navigator.geolocation有什么特殊设置或初始化吗?
标签: javascript html firefox google-chrome