jquery - 地理定位不适用于 Windows 7/XP 上的 Safari 5.x

标签 jquery ruby-on-rails html safari geolocation

我正在开发一个使用 W3C 标准地理定位 API 的应用程序,但我终生无法让它在我的 Windows 7 和 XP PC 上的 Safari 上运行。它在我的 iPad 和 iPhone 上运行良好。它也适用于 Chrome(5、6、7 和 Canary 版本)和 Firefox (3.6)。我没有 Mac,所以无法在上面进行测试。 IE 尚不支持地理定位,因此也包含在内。

我创建了一个精简版并将其托管在 Google Apps Engine 上,因此您可以查看代码:http://html5-geolocator.appspot.com/ .所有(简化的)javascript 都在 html 中,因此您应该能够右键单击并调试/查看源代码。

这几乎是 Google Map API DevGuide 上示例的直接转换.有趣的是,Google 托管的示例在 Windows 7 上的 Safari 5.0.x 中也不起作用(但它们在所有其他平台上运行良好,与我的应用程序相同),例如 http://code.google.com/apis/maps/documentation/javascript/examples/map-geolocation.html和我的APP一模一样,没有 map ,网页一直是灰色。

通过一些调试(警报(“我在这里”):-) 似乎在 Safari 中,它确实执行了 navigator.geolocation.getCurrentPosition(myCallback),但它似乎永远不会到达 myCallback ... 好像它永远不会从 getCurrentPosition 返回。我还看到,如果我让浏览器窗口整夜打开,当我早上回到它时,警报和 map 就会出现(尽管并非总是如此)。我还尝试添加了一个 errorCallback navigator.geolocation.getCurrentPosition(myCallback, errorCallback) 但它也从未执行过,再次表明它永远不会从 getCurrentPosition 调用中返回。

为什么会这样?

编辑: 只是做了一些更多的测试,我添加了超时选项 (navigator.geolocation.getCurrentPosition(myCallback, errorCallback, {timeout: 5000});) ,事实上它总是超时,不管我设置多高所以它永远不会从 Google 地理定位服务返回,但为什么呢?

最佳答案

尝试打开您的 Wi-Fi。 Safari 似乎依赖于 Wi-Fi 连接才能工作。 我遇到了完全相同的问题,打开我的 Wi-Fi 连接后它运行良好。

我现在正在研究如何检测此问题 - 如果我找到解决方案,将会更新

关于jquery - 地理定位不适用于 Windows 7/XP 上的 Safari 5.x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3686630/

相关文章:

JavaScript/css 在 Sharepoint WebPart 中不起作用

ruby-on-rails - Rails Impressionist 进行昂贵的查询

javascript - 仅当使用 Jquery 的 Textbox 的最小值时才禁用按钮

javascript - 重新开始按钮后,图像不会显示在测验结果中

Jquery 对话框 : Hide the button

ruby-on-rails - 如何在 Ubuntu 的 Aptana Studio3 上 :Debugging Rails 3. 1.x 应用程序(Ruby 1.9.3)

javascript - 如何从 HTML 字符串的 `head` 部分提取元素?

html - 页脚 Logo 未正确对齐并与页脚内容重叠

javascript - 使用 javascript/jquery 检查 .css 样式表的名称

ruby-on-rails - 保存事件记录数组