【问题标题】:Geo-location Help地理位置帮助
【发布时间】:2010-08-15 13:47:34
【问题描述】:

嗨,谁能告诉我我到底做错了什么 我似乎无法运行成功或失败函数。

function init(){;
    // Get the current location
    getPosition();      
}

function getPosition(){
    navigator.geolocation.getCurrentPosition(success, fail);    
}   

function success(position) 
{
    alert("Your latitude: " + position.coords.latitude + "longitude: "
        + position.coords.longitude);
}

function fail()
{
    alert("Your position cannot be found");
}

【问题讨论】:

  • 你的浏览器肯定支持这个吗? navigator.geolocation 不为空吗?
  • 我是这么认为的,我有最新的 chrome、safari 和 firefox,说我刚刚在 iphone 模拟器中尝试过这个,果然它可以工作,所以我完全困惑哈哈。感谢您的回复
  • 在下面发布的 jsfiddle 页面上使用 Opera 10.60 为我工作。拒绝权限后调用失败并显示警报

标签: jquery html geolocation


【解决方案1】:

您是否忘记在某处调用init 函数?代码在http://jsfiddle.net/mhj82/ 上的 jsFiddle 中运行良好(使用 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5. 30729))。

【讨论】:

  • 不肯定调用init函数,我在getPosition()函数中添加了一个警报,它按预期触发了谢谢你的回复。
  • 我引用的 jsFiddle 对你有用吗?你用的是哪个浏览器?
  • 这是别人的兼容性列表stackoverflow.com/questions/1349064/…
  • 我必须承认我已经点击了链接,在 Safari 中它询问我是否允许定位服务,但之后什么也没有,chrome 什么也不做。 :-S 这里发生了一些奇怪的事情。 Macbook、Safari 5.0 (6533.16)、Chrome 5.0.375.126(我相信是最新版本)
  • 我没有那个硬件(也没有软件,就此而言)。其他人可以确认这种行为吗?
【解决方案2】:

我也遇到了地理位置问题。这取决于您使用的浏览器。如果您在 google chrome 上尝试它,我相信它会工作,它对我来说可以完美地使用 chrome。

用这个代替测试:

navigator.geolocation.getCurrentPosition(success, fail, {timeout: 5000});

它会在执行失败函数之前尝试 5000 毫秒。似乎firefox只是一直在尝试而永远无法获得该位置。设置超时强制它退出。 Safari 很少工作。我目前也在调查这个……祝你好运。

编辑 重新启动计算机后,地理定位似乎工作正常。奇怪的。尝试超时,让我知道会发生什么。它可能会像我一样被“卡住”。

【讨论】:

  • 感谢您的回复盖伦,不幸的是我仍然面临同样的问题,不明白为什么!即使在重新启动后。它似乎确实像你建议的那样卡住了我只是想知道mac上是否有一个全局设置来防止地理位置。这可以解释为什么它在任何浏览器中都不起作用。再次感谢加里
  • 您是否尝试添加超时并查看是否调用了失败函数?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
相关资源
最近更新 更多