google.maps.places.Autocomplete在Firefox中多次请求位置
在我的网站上,我有一个singn_-up表单,并使用GoogleAPI向用户提供一些建议。API在Internet Explorer中请求用户的位置一次。但是如果我尝试Firefox,请求会一直循环,直到我点击“Standort immer Freigeben”——意思是“始终接受” 代码在document.ready加载,包含更多代码,但此代码段也会复制错误。 有人有什么想法吗?试试这个: 将API放入您的google.maps.places.Autocomplete在Firefox中多次请求位置,firefox,google-api,Firefox,Google Api,在我的网站上,我有一个singn_-up表单,并使用GoogleAPI向用户提供一些建议。API在Internet Explorer中请求用户的位置一次。但是如果我尝试Firefox,请求会一直循环,直到我点击“Standort immer Freigeben”——意思是“始终接受” 代码在document.ready加载,包含更多代码,但此代码段也会复制错误。 有人有什么想法吗?试试这个: 将API放入您的 这是我的代码: var input=document.getElementById(
这是我的代码:
var input=document.getElementById('autocomplete');
新的google.maps.places.Autocomplete(输入)代码>
请插入地址:
您可能保留了中给出的某些onfocus属性
或
如果您不要求保留位置建议的边界,则可能需要删除它
或
若您需要为建议设置边界,请保留一些条件,以确保在用户授予权限的情况下,不会每次都调用位置同意
请将您的条件保存在geologite()函数中
这个问题只发生在Mozilla FireFox中
您要做的是:
function handlePermission() {
navigator.permissions.query({name:'geolocation'}).then(function(result) {
if (result.state == 'granted') {
geoBtn.style.display = 'none';
} else if (result.state == 'prompt') {
geoBtn.style.display = 'none';
navigator.geolocation.getCurrentPosition(revealPosition,positionDenied,geoSettings);
} else if (result.state == 'denied') {
geoBtn.style.display = 'inline';
}
});
}
然后放入handlePermission()代码>在回调函数收到权限后
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false&libraries=places"></script>
<label for="autocomplete">Please Insert an address:</label>
<br>
<input id="autocomplete" type="text" size="100">
var input = document.getElementById('autocomplete');
new google.maps.places.Autocomplete(input);
<input id="autocomplete" placeholder="Enter your address" onFocus="geolocate()" type="text"></input>
function handlePermission() {
navigator.permissions.query({name:'geolocation'}).then(function(result) {
if (result.state == 'granted') {
geoBtn.style.display = 'none';
} else if (result.state == 'prompt') {
geoBtn.style.display = 'none';
navigator.geolocation.getCurrentPosition(revealPosition,positionDenied,geoSettings);
} else if (result.state == 'denied') {
geoBtn.style.display = 'inline';
}
});
}