Firefox javascript解释器或Firebug跳过行

Firefox javascript interpreter or Firebug skipping lines

本文关键字:Firebug javascript 解释器 Firefox      更新时间:2023-09-26

这是一段我没有写的jquery/javascript代码,但我正在尝试在Firebug上调试(我按原样复制/粘贴它,只是添加了一些空格以进行良好的排列):

 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,但错误再次发生,据我所知,它至少发生在另一台机器上。

我的猜测是我使用了一个保留关键字或其他什么。我要重写这篇文章,因为我不喜欢它的样子,但有人知道为什么会发生吗?

Firefox 14.0.1

Firebug 1.10.3

jQuery 1.8.0

jQuery ui 1.8.23

编辑:

我试过这个:

 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文件版本与它实际显示的版本不同。这有道理吗?但我重新开始了整个过程,所以我不知道会怎么发生。。。

我认为这可能是由于代码中的某些异常。我的建议是用错误处理修改你的代码

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

我最终重写了那个部分,我不知道为什么会发生这种情况,Firebug从那时起就更新了