我一直收到此错误
参数无效
从谷歌地图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>