jquery移动地理位置

Posted

技术标签:

【中文标题】jquery移动地理位置【英文标题】:jquery mobile geolocation 【发布时间】:2011-08-20 21:29:41 【问题描述】:

简单的问题.. 如果用户选择不允许地理定位器弹出,我该如何设置重定向?如果我已经涵盖了允许和错误。工作正常。但我不确定如何设置不允许选择。

function showLocation(position) 
      var latitude = position.coords.latitude;
      var longitude = position.coords.longitude;
      //window.location = "/restaurant/latitude/40.714269/longitude/-74.005972/";
      window.location = "/restaurant/";
    

    function errorHandler(err) 
      if(err.code == 1) 
            alert("Error: Can not access!");
      else if( err.code == 2) 
            alert("Error: Position is unavailable!");
      
    
    function getLocation()

       if(navigator.geolocation)
          // timeout at 60000 milliseconds (60 seconds)
          var options = timeout:60000;
          navigator.geolocation.getCurrentPosition(showLocation, errorHandler, options);
       else
          alert("Sorry, browser does not support geolocation!");
       
    

【问题讨论】:

【参考方案1】:

根据W3C Geolocation API spec,应该使用适当的失败原因调用错误处理程序。这包括用户拒绝的权限。

不幸的是,似乎有一个bug/feature in Firefox,如果您从弹出窗口中选择Not Now,则什么也不会发生-不会调用错误处理程序。但是,如果您选择 Never Share,则会调用您的错误处理程序,并且使用您发布的代码,您将看到警告说 Error: Can not access!

Chrome 中没有第三个选项(只有 AllowDeny),而且似乎一切正常。

另请参阅How to detect negative user response for geolocation,其中提出了解决方案(它涉及使用超时来检测没有发生任何事情并将其视为权限被拒绝)

【讨论】:

【参考方案2】:

我看到您已尝试设置 window.location。为什么这对你不起作用?

window.location = "../nonGeoLocationPage.html"

【讨论】:

那行得通..我没有意识到 no access/error 1 实际上是不允许选择..

以上是关于jquery移动地理位置的主要内容,如果未能解决你的问题,请参考以下文章

JS或者jquery做 一个div不随滚动条上下移动改变位置的效果,就是div始终保持在浏览器的一个位置,不用css

jQuery 移动数据过滤器固定位置/静态

JQUERY实现点击INPUT使光标移动到最后或指定位置

jQuery自动完成列表位置更改

单击ios“上一个”和“下一个”按钮时JQuery标题移动位置

在 jQuery 移动单页模板中放置脚本标签的位置