在我的网站上,我有一个singn_up表单并使用Google-Api向用户提供一些建议。 API在Internet Explorer中请求用户的位置一次。但是,如果我尝试使用Firefox,请求将循环播放,直到我点击“#34; Standort immer Freigeben" - 这意味着"始终接受"。
function initialize() {
autocomplete = new google.maps.places.Autocomplete(
(document.getElementById('autocomplete')),
{ types: ['geocode'] });
}
代码在document.ready中加载并包含更多代码,但此代码段也会重现错误。 有没有人有想法?
答案 0 :(得分:0)
试试这个:
将api放在<head></head>
<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">
将它放在你的onload函数中:
var input = document.getElementById('autocomplete');
new google.maps.places.Autocomplete(input);
这是我的代码:
var input = document.getElementById('autocomplete');
new google.maps.places.Autocomplete(input);
&#13;
<html>
<head>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false&libraries=places"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<label for="autocomplete">Please Insert an address:</label><br>
<input id="autocomplete" type="text" size="100">
</body>
</html>
&#13;
答案 1 :(得分:0)
您可能保留了Google Maps API Example
中给出的一些onfocus属性<input id="autocomplete" placeholder="Enter your address" onFocus="geolocate()" type="text"></input>
OR
如果您不要求保留地点建议的界限,您可能需要将其删除
OR
如果您需要为建议设置界限,请保留一些条件,以便在用户同意的情况下每次都不会调用位置同意。
请将您的情况保持在geolocate() function
问题仅在Mozilla FireFox中发生
答案 2 :(得分:0)
您要执行的操作是这样:
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();