0

所以我第一次尝试在 Javascript 中使用地理定位。我基本上从另一个堆栈溢出 jsfiddle 示例中复制了代码,该代码有效,但是我遇到了一些奇怪的错误。有一段时间我getLocation()在 JS 控制台中收到“最大调用堆栈大小超过 jquery”错误(和 20 次调用一样),现在我什么也没得到 - 除了地址栏中带有 X 的小目标图标之外说位置权限被拒绝(即使在自动允许所有位置请求之后)。那是在铬上。尝试了 safari,它发出了请求许可的警报,但什么也没发生。仍然没有错误。有什么建议么?

    $(window).load(function() {
    function getLocation() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(showPosition);
        }
        else {
            $('#test').write("Couldn't fetch location.");
        };
    };

    function showPosition(position) {
        $('#test').write("<h1>Latitude: \"" + position.coords.latitude + "\"</h1>");
        $('#test').write("<h1>Longitude: \"" + position.coords.longitude + "\"</h1>");
    };

    getLocation();
});, 
4

2 回答 2

0

jQuery中没有write()方法,最后有一个逗号。
修复语法错误,它应该可以工作:

$(function() {
    function getLocation() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(showPosition);
        }
        else {
            $('#test').html("Couldn't fetch location.");
        }
    }

    function showPosition(position) {
        $('#test').html("<h1>Latitude: \"" + position.coords.latitude + "\"</h1>");
        $('#test').append("<h1>Longitude: \"" + position.coords.longitude + "\"</h1>");
    }

    getLocation();
});

小提琴

于 2013-07-04T04:03:48.237 回答
0
<script>

var x=document.getElementById("test");

function getLocation()
{
if( navigator.geolocation{navigator.geolocation.getCurrentPosition( showPosition);
}
else { x.innerHTML = "Geolocation  is not supported by this browser.";
}}function showPosition(position){x.innerHTML="Latitude: " + position.coords.latitude + <br>Longitude: " + position.coords.longitude; }

</script>
于 2013-07-04T07:16:37.560 回答