我一直收到此错误
无效的参数
从Edge浏览器中的Google Map v3中获取。即使收到错误,其他所有内容都可以正常工作。仅当我尝试将光标移出地图右侧(在浏览器滚动条上)时,才会发生这种奇怪的行为。它仅在Edge中发生。
我已经创建了一个JSFiddle,它处于Google提到的原始状态。但是在那种情况下也会遇到同样的错误。我已经将this bug报告给了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});
}
答案 0 :(得分:5)
我能够重现该问题,这是我所发现的:
问题出现在边缘common.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
函数调用,则该函数将记录无效的参数。在控制台上。
您可以看到我提交的here错误报告。
答案 1 :(得分:0)
我没有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>