Javascript Mobile不会使用导航地理位置加载Javascript

时间:2013-06-07 20:09:03

标签: javascript jquery jquery-mobile mobile geolocation

我遇到了jQuery Mobile,javascript以及geolocaton的问题。

当我进入页面时,我正在使用以下内容来加载代码:

$(document).on('pageinit', function(){

如果用户已将可见性设置为可见,则会显示ID为可见的div,这是我第一次调用地理位置时使用:

if ($('#visible').length) {
    navigator.geolocation.getCurrentPosition(sucessHandler, errorHandler);
}

在此之后,我每20秒呼叫一次地理定位:

setInterval(function() {
    if ($('#visible').length) {
        navigator.geolocation.getCurrentPosition(sucessHandler);
    }
}, 20000);

我的问题是,如果我离开其中一个子页面的页面,并返回此页面,这些代码将无法再次运行。我尝试了以下内容来加载javascript,而不是pageinit:

$(document).on('pagebeforeshow', '#index', function(){  

$(document).on('pageinit', '#index', function()

我也尝试将它加载到索引的主体中。

非常感谢任何帮助=)

问候,弗雷德

1 个答案:

答案 0 :(得分:0)

首先,您可以考虑将navigator.geolocation.getCurrentPosition()替换为navigator.geolocation.watchPosition()。这将在每次设备收到位置更新时调用您的成功或错误处理函数,而不是每20秒需要ping一次以查看它是否已更改。

关于页面更改,只要您使用多页面模板,就可以在导航到任何子页面和从任何子页面导航时调用处理函数。

Here’s a JS fiddle illustrating this

希望这有帮助!