8

Javascript で getCurrentPosition メソッドを使用しています。メソッド「getCurrentPosition」をクリックすると実行を停止するボタンを実装したいと思います。throw/try/catch ブロックを試してみましたが、うまくいかないようです:

    試す {
        $('#cancel').on("クリック", function() {
            $.mobile.loading('hide');
            「ストップ」をスローします。
        });
        navigator.geolocation.getCurrentPosition(foundLocation、noLocation、{enableHighAccuracy: true、タイムアウト: 30000 });
    }
    キャッチ(ER){アラート(ER); false を返します。}

何か案は?JSでも可能ですか?アイデアはありましたが、getCurrentPosition が壊れるように JS メソッドでタイムアウトをトリガーできるかどうかわかりません。

4

1 に答える 1

16

解決:

メソッドnavigator.geolocation.getCurrentPositionは非同期関数であるため、そのように停止することを期待しないでください。

代わりに、 navigator.geolocation.watchPositionという別の関数を使用する必要があります。getCurrentPosition と同じように機能しますが、あなたの場合に役立つのは、 navigator.geolocation.clearWatchと呼ばれる別の関数であり、その関数は watchPosition を停止するために使用されます。

例:

geoLoc = navigator.geolocation;
watchID = geoLoc.watchPosition(showLocation, errorHandler, options);
geoLoc.clearWatch(watchID);
于 2013-04-11T15:19:00.137 に答える