IE 中的 JavaScript 地理位置零星
Posted
技术标签:
【中文标题】IE 中的 JavaScript 地理位置零星【英文标题】:JavaScript geolocation sporadic in IE 【发布时间】:2017-06-27 15:15:54 【问题描述】:我有一个与this one 非常相似的问题,但我认为它在一个特别基本的方式上有所不同,足以证明它自己的问题。我有一个页面,它使用getCurrentPosition()
每 2 秒请求一次用户的位置(非常频繁,我知道,但这是有目的的)。这是我的代码:
function locationWrapper()
if (!navigator.geolocation)
success = false;
console.log("Geolocation is not supported by this browser")
if (success)
navigator.geolocation.getCurrentPosition(
recordPosition, catchError, enableHighAccuracy: false
);
recordPosition()
函数实际上并没有做任何与问题相关的事情(而且很少有人达到)。 catchError
看起来像这样:
function catchError(error)
console.log(error);
switch (error.code)
case error.PERMISSION_DENIED:
console.log("User denied the request for Geolocation.");
case error.POSITION_UNAVAILABLE:
console.log("Location information is unavailable.");
break;
case error.TIMEOUT:
console.log("The request to get user location timed out.");
break;
case error.UNKNOWN_ERROR:
console.log("An unknown error occurred.");
break;
一切都相当简单。这在 Chrome 中完美运行,并且仅在 IE 中有时。这就是莫名其妙的事情。它在 JS 文档的开头调用一次,然后由 setInterval()
函数每 2 秒调用一次。第一个始终有效,在此期间它大约每 20 次有效一次,但否则会返回非常有用的 POSITION_UNAVAILABLE
错误。
我试过了:
将getCurrentPosition()
中的enableHighAccuracy
选项更改为false
,如我的代码所示
确保 IE 中的权限没有任何问题
将间隔时间延长至 5 秒
非常感谢任何意见。
编辑:
特别是 IE11。很抱歉错过了。
编辑 2:
我在使用 this example 时看到了相同的行为。第一次有效(显示坐标),但之后只显示错误,直到我重新加载。
【问题讨论】:
【参考方案1】:所以这似乎是其他用户也遇到的 IE 问题。在 Edge 和 IE 支持页面上有一个关于它的question,但是 OP 说明 Edge 也无法正常工作(这对我来说表现良好)并且似乎被忽略了,这让它有点混乱。我已经对该线程发表了评论,如果没有任何结果,我可能不得不提出自己的问题,仅与 IE 有关。
对我来说似乎很重要 - 如果开发人员不能在需要时使用getCurrentLocation()
,他们的网站将无法在 IE 中正常运行。我希望微软对此感兴趣。
【讨论】:
以上是关于IE 中的 JavaScript 地理位置零星的主要内容,如果未能解决你的问题,请参考以下文章