geolocation.getCurrentPosition 问题

Posted

技术标签:

【中文标题】geolocation.getCurrentPosition 问题【英文标题】:geolocation.getCurrentPosition issue 【发布时间】:2018-10-08 11:14:39 【问题描述】:

我有一个关于 geolocation.getCurrentPosition() 的问题

我有以下代码:

$(document).on('click', '#find_pickupStoresNearMe_button', function (e) 
    e.preventDefault();
    var formAction = $(this).parents('form').attr('action');
    $('#locationForSearch').val('');
    navigator.geolocation.getCurrentPosition(function (position) 
        console.log(position);
        ACC.pickupinstore.locationSearchSubmit('', formAction, position.coords.latitude, position.coords.longitude);
    , function (error) 
        console.log("An error occurred... The error code and message are: " + error.code + "/" + error.message);
    );
);

问题是函数直接跳转到函数(错误),因为位置未定义。我在不同的文件夹中为不同的商店有相同的代码,并且 html 结构是相同的,它可以很好地检索城市我在搜索输入中请求。

HTML 代码:

<form id="command" name="pickupInStoreForm" class="searchPOSForm clearfix" action="/store/store-pickup/pointOfServices"
    method="POST">
    <table>
        <tbody>
            <tr>
                <td>
                    <div class="control-group left">
                        <div class="controls">
                            <input type="text" name="locationQuery" id="locationForSearch" class="left" placeholder="Adauga Oras">
                        </div>
                    </div>
                </td>
                <td>
                    <button type="button" class="" id="pickupstore_search_button">Gaseste magazin</button>
                </td>
                <td>
                    <button type="button" class="" id="find_pickupStoresNearMe_button">Localizeaza pozitia pe harta</button>
                </td>
            </tr>
        </tbody>
    </table>
    <div>

我是 javascript 和 jQuery 的新手,如果问题表述不当或需要额外信息,请告诉我。任何有关我在哪里寻找问题的帮助将不胜感激。

【问题讨论】:

也许您已经永久“屏蔽”了某个特定网站的位置? (getCurrentPosition 只适用于 https 网站,你知道的,对吧?) 您收到的错误代码/消息是什么。 @ShivKumarBaghel 只是弹出的函数(错误),它跳过了第一个调用的函数,控制台没有语法错误。 @JaromandaX 并非如此,它在具有相同代码的不同商店中工作,并且我没有语法错误 另外,那里没有锁符号 【参考方案1】:

检查这些是否有效。

$(function($) 
    $('#pickupstore_search_button').on('click', (e) => 
      e.preventDefault();
      navigator.geolocation.getCurrentPosition((pos) => 
        console.log(pos)
      , (err) => 
         console.error(err)
      );
    );
);

否则,请单击 URL 之前(https 之前)的锁定符号,进入站点设置并将位置设置为询问默认或允许。

也许

【讨论】:

同样的问题,我在控制台中设置了断点,到达getCurrentPosition后,它跳出函数(它没有控制台记录任何东西,既没有pos,也没有err) 您是否尝试点击锁定符号? 我在 URL 前没有看到锁符号 谢谢,它成功了,锁符号是问题

以上是关于geolocation.getCurrentPosition 问题的主要内容,如果未能解决你的问题,请参考以下文章