是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示

What makes an "Uncaught RangeError: Maximum call stack size exceeded" error? (Chrome, in other browsers other message)

本文关键字:错误 堆栈 调用 Chrome 显示 浏览器 其他 过了 一个 Uncaught 是什么      更新时间:2023-09-26

Culdn`t找不到导致该错误的原因,以及如何找到解决方案。。。

在项目下工作:

http://atlas.sitegist.net/business/atlas/?l=en&h=6dff16b6f593384662cb24d66142047a

在项目中,我用整数值显示不同的数据,所有这些都显示在地图上。当我添加新数据集的另一个可视化时,出现了错误。

测试信息:

大多数情况下,我必须在UI中做一些事件,当然也要混合以下内容:

  • 必须点击";项目;按钮,然后在我的项目的工具栏部分选中/取消选中复选框
  • 必须单击左侧边栏面板上的事件(无需展开折叠,对于给定的数据集,对象的选择是通过选择父对象中的一个来进行的)

有时错误会在5分钟内出现。有时是在第一次拍摄中,但大多数是在3-4 UI请求中。

上面的链接从一开始或通过2-3个事件触发器再现错误。

错误:从控制台复制粘贴

我在Chrome控制台中有这样的错误:

Uncaught RangeError: Maximum call stack size exceeded
H.get
(anonymous function)
Mu.(anonymous function).zoomRange_changed
yf
H.set
(anonymous function)
Mu.(anonymous function).zoomRange_changed
yf
H.set
(anonymous function)
Mu.(anonymous function).zoomRange_changed
yf
...
H.set
(anonymous function)
Mu.(anonymous function).zoomRange_changed
yf

还有一个:

<error>
(anonymous function)
$
nm
Du
H.bf
H.mapType_changed
yf
H.set
H.aa
Tg.(anonymous function).J
(anonymous function)
Q.trigger
H.aa
Tg.(anonymous function).J
(anonymous function)
Q.trigger
H.aa
Tg.(anonymous function).J
(anonymous function)
Q.trigger
H.aa
...
H.aa
Tg.(anonymous function).J
(anonymous function)
Q.trigger

解决方案下的解决方案对我没有帮助,因为缺乏关于I.set的信息,而且我也不使用";Gmaps4rails":

Gmaps4rails超过了最大调用堆栈大小?

已解决

我在边界变量中发现了一个问题。

当我从服务器接收JSON时,在解析它时,代码会从地图上的每个位置进行绑定。

// renew map bounds each time when new query comes
bounds = new google.maps.LatLngBounds ();
...
for (var key in data.locations ) {
    ...
    // For fitting in Bounds, we push the positions of each location
    atlas.Map.vars.bounds.extend ( new google.maps.LatLng(
        data.locations [key].lat,
        data.locations [key].lng
    ) );    
    ...
}
...
GoogleMap.fitBounds (bounds);

不知何故,对于新的数据类型,它使浏览器堆栈溢出。

(这很奇怪,因为它对于更大的结果来说是正常的!(地图上的600<元素))。

制作了一个快速结果的暴力代码:

bounds = new google.maps.LatLngBounds ();
if( KMLLayer.poly.docs[0].bounds != undefined ) {
    bounds.extend( KMLLayer.poly.docs[0].bounds.getNorthEast() );
    bounds.extend( KMLLayer.poly.docs[0].bounds.getSouthWest() );
}
if( KMLLayer.marks.docs[0].bounds != undefined ) {
    bounds.extend( KMLLayer.marks.docs[0].bounds.getNorthEast() );
    bounds.extend( KMLLayer.marks.docs[0].bounds.getSouthWest() );
}
GoogleMap.fitBounds (bounds);

我有两个KML层,所以我从GeoXML3层检索边界(如果有的话)。

该死,我花了6小时38分钟!!!

也许我错了这句话,是什么严重清除了全局变量:

bounds = new google.maps.LatLngBounds ();

变量的原始名称稍长:)边界===图集。地图.vars.bounds

我收到了同样的错误。然而,在我的情况下,这个问题与lat和long数据有关。它少了一个点,导致了这个问题。

相关:https://groups.google.com/forum/?fromgroups=#!topic/google-maps-js-api-v3/1SCjxGntruU

当您忘记为地图设置所有最小选项时,通常会发生此错误(在Google Chrome中)。以下是:

var map = new google.maps.Map(
    document.getElementById( 'some-id' ),
    {
        center :    new google.maps.LatLng( 43, 16 ),
        zoom :      10,
        mapTypeId : google.maps.MapTypeId.ROADMAP
    }
);

您的多边形路径是否包含任何空LatLng?

发生这种情况时,我收到了相同的错误-愚蠢的错误,但可能会帮助处于类似情况的人。