更新:仅当我使用旧版本的 jQuery (1.3.2) 而不是最新版本 (1.4.2) 时才会出现问题。
原始问题:
我发现了一个奇怪的行为,想知道是否有任何解决方法。javascript 'for' 循环可用于枚举对象的属性名称。我发现虽然在 IE 上它不适用于某些对象,尤其是 XMLHttpRequest。考虑以下代码。它将为 Firefox 上的 XMLHttpRequest 上的每个属性打开一个警告框。然而,在 IE 上,找不到任何属性。如果我使用调试器单步执行,对象上肯定有属性。如果我使用 jQuery 的 $.for() 函数,我会看到相同的结果。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function() {
$.ajax({
url: "/willneverwork/",
timeout: 1,
error: function(xmlHttpRequest) {
for (key in xmlHttpRequest) {
alert(key);
}
}
});
});
</script>
</head>
<body>
</body>
</html>