2009-11-12 167 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步:現在你已經實際上得到一個例外,你可以看看,只要按照堆棧跟蹤,看看有什麼線,特別是造成問題。

希望的作品(但如果不作評論回)。