Javascript - 我的函数geolocation permission onchange以几何级数返回值

时间:2018-06-08 11:15:56

标签: javascript geolocation

此处我的代码应该在用户更改地理位置权限时切换按钮

environment: - JAVA_OPTS=-DWEBAPPDB=jdbc:mysql://192.168.101.129:3306/webapp?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8 工作正常

但是当onchange函数启动时,它会导致toogleGeoButtons()次。所以

toogleGeoButtons()

console screenshot

2 个答案:

答案 0 :(得分:0)

因为你多次添加你的函数删除navigatorPermisstion();从改变事件。

答案 1 :(得分:0)

试试这个:

navigatorPermisstion();
function navigatorPermisstion() {
    navigator.permissions.query({
        name: 'geolocation'
    }).then(function(result) {
        if (result.state == 'granted') {
            getLocation();
        } else if (result.state == 'prompt') {
            navigator.geolocation.getCurrentPosition(revealPosition, positionDenied, geoSettings);
        }
        result.onchange = function() {
            toogleGeoButtons();
        }
    });    
}