Đây là tình huống. Tôi có một số javascript trông như thế này:Bắt buộc làm mới DOM trong trình khám phá Internet sau khi thao tác với javascript dom
function onSubmit() {
doSomeStuff();
someSpan.style.display="block";
otherSpan.style.display="none";
return doLongRunningOperation;
}
Khi tôi làm cho một hình thức nộp hành động, và chạy nó từ một trình duyệt không phải IE, nó nhanh chóng hoán đổi khả năng hiển thị hai nhịp và chạy các hoạt động javascript dài. Nếu tôi làm điều này trong IE, nó sẽ không thực hiện hoán đổi cho đến khi onSubmit() trả về hoàn toàn.
tôi có thể buộc một dom vẽ lại bằng cách dán một hộp cảnh báo trong như vậy:
function onSubmit() {
doSomeStuff();
someSpan.style.display="block";
otherSpan.style.display="none";
alert("refresh forced");
return doLongRunningOperation;
}
Ngoài ra, jquery refactoring rõ ràng không ảnh hưởng đến hành vi của IE:
function onSubmit() {
doSomeStuff();
$("#someSpan").show();
$("#otherSpan").hide();
return doLongRunningOperation;
}
Hành vi này tồn tại trên IE8 và IE6. Có anyway để buộc vẽ lại DOM trong các trình duyệt này không?
Thứ nhất, bạn đang làm gì trong longRunningOperation? –
Bạn đã thử di chuyển chế độ hiển thị chuyển sang chức năng riêng của nó chưa? – seth
longRunningOperation đang thực hiện xác thực biểu mẫu. Biểu mẫu lớn trong một nhóm nhỏ các trường hợp. –