1 回答
TA贡献1796条经验 获得超4个赞
好的,运行一些测试后的一些事情:
上面的“按钮”没有任何问题,Mac 和 iOS 上的 Safari 都可以正常响应
onclick="function()"
。geolocation
如果页面不是通过.Safari 访问,Safari 将拒绝所有访问https:
。尝试访问geolocation
withhttp:
将引发在控制台中可见的错误,否则该错误将保持沉默。如果 Safari 试图通过 访问
geolocation
,https
浏览器会弹出一个对话框,上面写着“网站 [your_site_name] 想使用您当前的位置。”,带有“不允许”和“允许”按钮。
如果用户设法克服所有这些障碍,geolocation就会奏效。
测试代码:
<html>
<head>
</head>
<body>
<form id="locinput">
<input id="clickMe" type="button" value="Get GeoLoc"
onclick="getLocation();"/>
<button value="iosbutton" type="button" onclick="getLocation();">iOS
Button
</button>
<a id="iosButton" class="btn" data-g-label="button1"
href="#" onclick="getLocation();">Get Location</a>
<input type="button" value="Test" onclick="getLocation();"/>
</form>
<script>
const form = document.getElementById('locinput');
function getLocation () {
console.log('getLocation()');
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(prefillLocation);
} else {
alert('Geolocation is not supported by this browser.');
}
}
function prefillLocation (position) {
form.value = position.coords.latitude + ', ' + position.coords.longitude;
}
</script>
</body>
</html>
添加回答
举报