これは私が書いていない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
ファイアーバグ 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;
同じ行にブレークポイントを設定すると、代わりにその行にジャンプします。続行すると、例外はキャッチされません...
Edit2:他の仮説: Firefox には、実際に表示されているものとは異なるバージョンの js ファイルがどこかにあります。それは理にかなっていますか?全部やり直したけどどうなるか分からない…