0

ページにユーザーの郵便番号を表示する次のコードがあります(最近の質問のいずれかを読んだ場合、それらはすべてこれに関係します)。ブラウザがジオロケーションをサポートしていない一部の環境を除いて、通常、郵便番号が表示されます。このような場合、ページには何も表示されず、コンソールにエラーは記録されません。

JS

function getZipCode(geolocation) {
    if (geolocation) {
        geolocation.getCurrentPosition(function (position) {
           $.getJSON(
               "http://ws.geonames.org/findNearestAddressJSON?callback=?",
                {
                    lat : position.coords.latitude,
                    lng : position.coords.longitude
                },
                function (data) {
                    $(function () {
                        $('#zip').text(data.address.postalcode);
                    });
                }
            );
        });
    }
}

HTML

<div id="zip"></div>

これをエラー処理して、スクリプトが結果を返さないときに何を言ってもエラーを表示する方法はありますか?私はテキストを間に入れることを考えていましたが#zip、ブラウザがそれをサポートしているユーザーは、ロード時にそのテキストを見ることになり、それが変更されても、それは悪いUXになります。

4

2 に答える 2

2

スクリプトはif(ジオロケーション)チェックに合格しません。

単に行う

if (geolocation) {
//do stuff
}
else {
//notify user that his browser doesnt have geolocation
}
于 2012-08-18T17:14:10.623 に答える
1

geolocation.getCurrentPosition()オプションのerrorCallbackパラメータを取ります。これを使用してエラーを表示します。

于 2012-08-18T18:28:33.777 に答える