Tôi nhận thấy một hành vi lạ với Internet Explorer khi trang của tôi nằm trong iframe. Dường như iframe tải lại chính nó khi gọi window.history.back(), mặc dù chỉ băm trong URL phải thay đổi. Khi trang không nằm trong iframe, trang đó hoạt động đúng và không tải lại trang. Bất kỳ ý tưởng tại sao điều này đang xảy ra và làm thế nào để ngăn chặn nó?window.history.back() tải lại trang trong Internet Explorer khi bên trong iframe?
Tôi tạo ra một fiddle mà sẽ chứng minh điều này trong IE9:
jsfiddle sử dụng iframe, vì vậy hành vi sẽ là hành vi iframe. Nhấp vào '#foo' và '#bar' sẽ thay đổi giá trị băm trong URL. Bây giờ nhấp vào liên kết 'BACK' sẽ kích hoạt window.history.back(). Lưu ý rằng dấu thời gian thay đổi khi bạn làm điều đó, cho biết trang đang tải lại.
Ngoài ra, nếu bạn nạp trực tiếp iframe:
http://fiddle.jshell.net/peh96/5/show/
bạn sẽ nhận thấy rằng dấu thời gian không thay đổi khi nhấp chuột 'trở lại'.
Đây chỉ là vấn đề với IE, vì Chrome và Firefox nhất quán dù bên trong khung nội tuyến hay không.
Bất kỳ ý tưởng nào về cách ngăn tải lại này?
Chúng tôi cũng rất lo lắng bởi lỗi này: ( – Blackbird
@Blackbird, giải pháp thay thế mà bạn đã chọn để giải quyết vấn đề này là gì? –
không, thật không may :(Còn bạn thì sao? – Blackbird