致力于html5地理定位。
尝试了mozilla,chrome,IE。他们工作正常,但没有为野生动物园工作。在Mac上的safari(8.0.5),在Windows上的safari(5.1)上进行了测试
只需点击网址
即可http://www.w3schools.com/html/html5_geolocation.asp
OR
http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_geolocation
<!DOCTYPE html>
<html>
<body>
<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
</body>
</html>
它允许弹出允许/禁止但在允许后不执行任何操作。 我已经在Mac上测试了与wi-fi连接的Safari,但也没有用于wi-fi和LAN上的笔记本电脑。
答案 0 :(得分:5)
您是通过Wi-Fi连接还是通过有线网络连接?
当你没有与wi-fi连接时,似乎safari有麻烦。
来源
答案 1 :(得分:4)
根据问题中的示例,以下是完整的工作代码段:
<p id=demo>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
getLocation()
</script>
我在我的环境中在Safari中测试过,它按预期工作。问题中的实际例子是不完整的,因此它本身永远不会做任何事情。因此,很难知道在Mozilla,Chrome和IE中可能没有看到完整代码的情况。
如果上述代码段仍然无法在您的Safari中使用,请打开Safari的Web Inspector(例如,从开发菜单或右键单击页面并选择检查元素),然后转到控制台标签,查看已记录的错误。
目前,就代码片段而言,只需要完全清楚,需要注意一些基本要点:
getLocation()
函数(不只是定义它)id=demo
元素id=demo
元素之后(如果您将getLocation()
的调用放入文档的head
中,那么它就不会起作用,因为它将在DOM中存在id=demo
元素之前运行另外,一般情况说明:永远不要使用w3schools.com。它很草率,非常不可靠,维护得很差。而是使用MDN。例如,MDN有一个非常好的Using geolocation页面,complete code for a good live example。
答案 2 :(得分:0)
很遗憾,Apple不通过HTTP连接提供地理位置数据。您需要使用HTTPS才能访问Safari上的客户端地理位置。
答案 3 :(得分:0)
JavaScript地理位置未要求用户共享iOS和Desktop Safari上的位置。事实证明,Safari共享站点需要HTTPS和错误处理。添加SSL证书后,它就可以使用!