2012-09-04 18 views
3

這裏是一段jQuery/JavaScript代碼我沒有寫,但我試圖在Firebug上調試(我複製/粘貼它,只是添加一些空間,以良好的連接):Firefox的JavaScript解釋器或螢火蟲跳過線

if (control == "#testTakerSearchSource" && object !== undefined && object[key] !== undefined && key == "datasets" && object[key].length >= 3) { 
    var afterValues = []; 
    if (object[key].length == 3 && object[key][0] == "1") { 
     afterValues[0] = "1,2,3"; 
     object[key] = afterValues; 
    } 
    else { 
     var beforeValues = object[key]; 
     afterValues[0] = "1,2,3"; 
     for (var i = 3; i < beforeValues.length; i++) { 
      afterValues[i - 2] = beforeValues[i]; 
     } 
     object[key] = afterValues; 
    } 
} 

我設置了第一行的斷點。它停止,因爲它應該。當我打F10時,它直接跳到afterValues[i - 2] = beforeValues[i];這一行,將幾個括號右移到一個for循環中......我嘗試重新啓動FF,但是這個錯誤再次發生,並且據我所知至少發生在至少另一臺機器。

我的猜測是我正在使用保留的關鍵字或其他東西。我會重寫這個,因爲我不喜歡它的樣子,但是有沒有人知道它爲什麼會發生?

火狐14.0.1

螢火蟲1.10.3

的jQuery 1.8.0

的jQuery UI的23年1月8日

編輯:

我嘗試這樣做:

try { 
    if (control == "#testTakerSearchSource" && object !== undefined && object[key] !== undefined && key == "datasets" && object[key].length >= 3) { 
     var afterValues = []; 
     if (object[key].length == 3 && object[key][0] == "1") { 
      afterValues[0] = "1,2,3"; 
      object[key] = afterValues; 
     } 
     else { 
      var beforeValues = object[key]; 
      afterValues[0] = "1,2,3"; 
      for (var i = 3; i < beforeValues.length; i++) { 
       afterValues[i - 2] = beforeValues[i]; 
      } 
      object[key] = afterValues; 
     } 
    } 
} 
catch (err) { 
    alert(err); 
} 

現在,如果我在同一行上設置斷點,它會跳轉到object[key] = afterValues;行。如果我繼續,沒有例外...

編輯2:其他假設:Firefox有一個不同的版本,我的js文件的某處比它實際顯示我。這有道理嗎?我重新啓動了整個事情,所以我不知道會如何發生......

回答

1

我結束了重寫的那部分,我不知道爲什麼會發生和螢火蟲被更新從那時起

2

我認爲這可能是由於代碼中的一些異常。我的寶貴意見是修改你的代碼錯誤處理

try 
    { 
    //your code if (control == "#testTakerSearchSource" && ......... 
    } 
catch(err) 
    { 
    alert(err); 
    } 
+0

沒有工作,我更新了我的問題 –