我有以下代码在页面上显示用户的邮政编码(如果您已阅读我最近的任何问题,它们都与此有关)。除了在浏览器不支持地理定位的某些环境中外,通常会显示zipcode。在这些情况下,页面不显示任何内容,并且没有错误记录到控制台。
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
之间,但是那些浏览器支持它的用户会看到加载的文本,即使它会改变,也会是一个糟糕的用户体验。
答案 0 :(得分:2)
您的脚本不会通过if(地理位置)检查。
简单地做
if (geolocation) {
//do stuff
}
else {
//notify user that his browser doesnt have geolocation
}
答案 1 :(得分:1)
geolocation.getCurrentPosition()
采用可选的errorCallback
参数。用它来显示错误。