W3C地理定位API不适用于Chrome
W3C Geolocation API not working in Chrome
以下代码适用于Firefox,但不适用于Google Chrome:
<!DOCTYPE html>
<html>
<head>
<title>title</title>
<script type="text/javascript">
var successCallback = function(data) {
console.log('latitude: ' + data.coords.latitude + ' longitude: ' + data.coords.longitude);
};
var failureCallback = function() {
console.log('location failure :(');
};
var logLocation = function() {
//determine if the handset has client side geo location capabilities
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(successCallback, failureCallback);
}
else{
alert("Functionality not available");
}
};
logLocation();
setTimeout(logLocation, 5000);
</script>
</head>
<body>
<p>Testing</p>
<body>
</html>
怎么回事?我认为Google Chrome应该支持W3C地理定位API。
非常适合我-在Win 7上同时使用Chrome 11和Firefox 4.0.1
- 确保您没有在Chrome中禁用位置跟踪:
Options > Under the Hood > Content Settings > Location
- 由于安全限制,不允许使用
file:///
方案加载的资源访问该位置。请参阅Chrome中的HTML 5地理位置提示
如果您的域不安全(例如HTTP而不是HTTPS),则不允许您访问Chrome中的位置。这是自Chrome版本50(太平洋标准时间2016年4月20日下午12点)。
请参阅https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only详细信息。
2017年:
注意:从Chrome 50开始,Geolocation API将仅适用于HTTPS等安全上下文。如果您的网站托管在非安全来源(如HTTP)上,则获取用户位置的请求将不再起作用。
地理定位API从Chrome 50中的不安全来源中删除
它对我来说很好-在Win 7 上使用Chrome 11和Firefox 4.0.1
确保您没有在Chrome中禁用位置跟踪:选项>引擎盖下>内容设置>位置请允许检查权限后,请运行
运行后,它将是sucesscallback
,否则它将进入errorcallback
function sucesscallback (position)
{
var userLatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
var myOptions = {
zoom: 15,
center: userLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var mapObject = new google.maps.Map(document.getElementById("googleMap"), myOptions);
var marker = new google.maps.Marker({
map: mapObject,
position: userLatLng
});
}
function failureCallback(error) {
switch (error.code) {
case 1:
alert("User denied the request for Geolocation.");
break;
case 2:
alert("Location information is unavailable. Please ensure Location is On");
break;
case 3:
alert("timeout");
break;
case 4:
alert("An unknown error occurred.");
break;
}
}
<div id='googleMap' style='width:300px;height:300px;'>
</div>
Geolocation API允许您在用户同意的情况下发现用户的位置。您可以将此功能用于引导用户到达目的地和对用户创建的内容进行地理标记;例如标记照片的拍摄位置。
Geolocation API还允许您查看用户的位置,并在用户移动时随时监视用户,始终征得用户的同意(并且仅在页面打开时)。这创建了许多有趣的用例,例如与后端系统集成,以便在用户附近准备收集订单。
在使用Geolocation API时,您需要注意许多事情。本指南将引导您了解常见的用例和解决方案。
https://developers.google.com/web/fundamentals/native-hardware/user-location/?hl=en
- html5 drawImage适用于firefox,而不是chrome
- Jquery Ajax POST不工作.适用于GET
- 如何调试遗留的javascript代码(适用于IE,但在Google Chrome中不正常)
- .load()适用于window,而不是ID
- 使用Jquery更改css样式适用于id's、 不在课堂上
- 提交按钮不会;不适用于Chrome或Firefox,但适用于Internet Explorer
- 为什么 javascript 中的“btoa”编码适用于 20 位字符串而不是 20 位整数
- Javascript String to Date适用于Chrome,而不是FF或Safari
- Onchange,向上,向下箭头键适用于FF和Chrome,但在IE中不起作用
- .load() 适用于 IE 和 dreamweaver 预览版,但不能使用 opera 和 chrome
- 找不到适用于 Highcharts 的 JSON 数组语法
- 为什么在jQuery中使用focusout适用于Firefox,而使用addEventListener则不适用;t
- jQuery选择菜单验证器适用于FF和Chrome,但不适用IE
- 单选按钮'onclick'适用于Chrome和Firefox,但不适用IE
- JQuery ScrollTop适用于chrome,但不适用firefox
- window.opener.location.href适用于IE,但不适用Chrome或Safari
- Frame Busting buster不完全适用于IE
- Jquery touch punch适用于Chrome和Firefox,但不适用IE
- 背景更改仅适用于chrome+$.预加载不适用;不起作用
- JavaScript window.location.replace适用于Firefox,但不适用IE或Chrome