2009-11-12 168 views
3

我只是得到我的第一次堆栈溢出,当我跑这个脚本:堆栈溢出错误

var hlat = 0.00; 
var hlong = 0.00; 
var mapdiv = document.getElementById('map'); 
var map_url = base_url + 'ajax/getPropMap'; 
var id_url = base_url + 'hotels/gethotel_id'; 
var id=0; 
var map = null; 
// apply gmaps to product map div 

$(function(){ 
    $.get(id_url, {id: segment}, getMapDetails); 
}); 

function getMapDetails(data){ 
    $.getJSON(map_url, {id:data}, addToProdMap); 
} 

function getMapDetails(data){ 
    addProdMap(data); 
} 

function addProdMap(data){ 
    hlat = data.latitude; 
    hlong = data.longitude; 

    map = new google.maps.Map(mapdiv, { 
      center : new google.maps.LatLng(hlat, hlong), 
      zoom : 13, 
      mapTypeId : 'hybrid' 
    }); 

    var coords = new google.maps.LatLng(hlat, hlong); 
    var marker = new google.maps.Marker({ 
     clickable : true, 
     map: map, 
     icon : 'http://labs.google.com/ridefinder/images/mm_20_red.png', 
     position : coords 
    }) 
} 

如何面对呢?火狐关闭,IE显示堆栈溢出错误

+1

你有一些来自IE的调试结果吗?这与PHP有什么关系? ;) – Franz 2009-11-12 01:16:33

+1

您是否故意创建两个名称为getMapDetails的函数? – Jacob 2009-11-12 01:17:29

+0

@Franz:我在这里使用Kohana PHP框架作为我的后端,并且最上面是对控制器的调用...或者是否不会将此视为拥有PHP标记?没有IE的调试结果 – yretuta 2009-11-12 01:20:42

回答

1

你有两个同名的函数:getMapDetails

+0

重复的函数名称的问题,你higlight行是触发页面加载,正在尝试从服务器的会话变量的函数...所以,我想我会选择你的答案 – yretuta 2009-11-12 01:57:51

+0

是的,如果你对此有何评论该线我不认为你会得到错误(因为那是当问题的功能实际上被调用)。我更新了我的答案。 – 2009-11-12 02:20:17

0

第1步:升级到最新的Firefox

第2步:安装Firebug的

第3步:经过这两个步骤,当您尝试使用Firefox应该不会再崩溃,运行该脚本。如果是这样,请尝试将所有内容包装在try/catch中并记录被捕获的异常。如果它没有崩溃,那么异常应该正常记录到你的Firebug控制台(假设你打开了它)。

第4步:现在你已经实际上得到一个例外,你可以看看,只要按照堆栈跟踪,看看有什么线,特别是造成问题。

希望的作品(但如果不作评论回)。