0

这是本页讨论的延续:Geolocation Google Maps Links jQuery

当用户单击链接时,我需要通过 navigator.geolocation 设置saddr。我可以通过下面的代码实现这一点,但是替换 href 后,链接不起作用。如果我将创建的链接传递到地址栏中,它会打开谷歌地图并绘制正确的路线,否则该链接将不起作用。

我认为每次按下链接时 href 都会被替换。我将如何在脚本末尾打开链接?

编辑:邓肯提供的解决方案,现在显示工作脚本

    $("a.geo").click(function(e) {               
        if (navigator && navigator.geolocation) {
            navigator.geolocation.getCurrentPosition($.proxy(getLoc, $(this)));
            e.preventDefault();
        }
        });

        function getLoc(position) {                     
            var geoLat = position.coords.latitude;
            var geoLon = position.coords.longitude;
            document.location.href = "http://maps.google.com/maps?saddr=" + geoLat + "," + geoLon + "&daddr=35.662296,139.765854&dirflg=w&sensor=true";

        }
4

2 回答 2

1

尝试改变

$(a.geo).trigger('click');

$("a.geo").trigger('click');
于 2012-06-14T09:05:47.253 回答
1

因此,将当前页面位置更新为"http://maps.google.com/maps?saddr=" + geoLat + "," + geoLon + "&daddr=35.662296,139.765854并不是您真正想要做的&dirflg=w&传感器=真"

而不是从点击事件处理程序(复杂,递归)中调用的函数触发点击事件,为什么不这样做:

document.location.href = "http://maps.google.com/maps?saddr=" + geoLat + "," + geoLon + "&daddr=35.662296,139.765854&dirflg=w&sensor=true";
于 2012-06-14T10:13:01.060 回答