参数无效 - Edge 浏览器中的谷歌地图错误



我一直收到此错误

参数无效

从谷歌地图v3在边缘浏览器。即使在收到错误后,其他一切都工作正常。只有当我尝试将光标从地图移到右侧(在浏览器滚动上(时,才会发生这种奇怪的行为。它只发生在边缘。

我创建了一个JSFiddle,它处于Google提到的原始状态。但是在这种情况下我也遇到了同样的错误。我已经向谷歌地图支持论坛报告了这个错误,同时试图从我所知道的最大社区中找到解决方案。提前谢谢。您可以查看下面的代码

function initMap() {
  var uluru = {lat: -25.344, lng: 131.036};
  var map = new google.maps.Map(
      document.getElementById('map'), {zoom: 4, center: uluru});
  var marker = new google.maps.Marker({position: uluru, map: map});
}

我能够重现该问题,这是我发现的:

此问题出现在以下代码中.js 边缘文件:

if ("undefined" != typeof a.compareDocumentPosition)
    return a == b || !!(a.compareDocumentPosition(b) & 16);

特别是compareDocumentPosition函数调用,因为它不喜欢参数 B。实际功能块:

function (a, b) {
    if (!a || !b)
        return !1;
    if (a.contains && 1 == b.nodeType)
        return a == b || a.contains(b);
    if ("undefined" != typeof a.compareDocumentPosition)
        return a == b || !!(a.compareDocumentPosition(b) & 16);
    for (; b && a != b;)
        b = b.parentNode;
    return b == a;
};

每当地图容器上发生mouseout事件并且参数 a 是地图容器元素,b 是滚动条对象时,都会调用此块。当您将鼠标移出地图并移动到浏览器窗口的滚动条上时,所有其他浏览器调用相同的方法,滚动条对象的nodeType为 1,然后执行return a == b || a.contains(b);代码块。

但是,在滚动条对象的边缘nodeType的情况下undefined它执行return a == b || !!(a.compareDocumentPosition(b) & 16);代码块并将滚动条对象传递给compareDocumentPosition函数调用,然后记录无效参数。 在控制台上。

您可以在此处查看我提交的错误报告。

我没有 Edge ...但是,将地图称为id="map"是问题的常见来源。看看这是否有效(控制台是有意启用的;只需忽略前三个错误并记录警告(。万一它有效...至少不应该有invalid argument错误跟进。

function initMap() {
  var uluru = {lat: -25.344, lng: 131.036};
  var map = new google.maps.Map(document.getElementById('map_canvas'), {mapTypeId: 'satellite', zoom: 13, center: uluru});
  var marker = new google.maps.Marker({position: uluru, map: map});
}
google.maps.event.addDomListener(window, "load", initMap);
html, body, #map_canvas {height: 100%; width: 100%; margin: 0px; padding: 0px;}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas"></div>

相关内容

  • 没有找到相关文章

最新更新