2009-07-04 35 views
5

Trong ứng dụng web, chúng tôi sử dụng IFRAME để cho phép người dùng chọn các mục cho trang gốc.lịch sử iframe firefox

Vấn đề là FIREFOX (3.5) thêm một bản sao của cùng một trang (cha mẹ) vào lịch sử mỗi khi mở IFRAME.

Ứng dụng web đang sử dụng history.back() để chuyển từ trang chính sang trang được gọi là trang đó.

Chúng tôi có thể khắc phục điều đó bằng cách chuyển trang "quay lại" làm thông số từ người gọi đến callee.

Nút BACK vẫn bị hỏng (người dùng nhấn nút quay lại nhưng vẫn ở trong cùng một trang).

Sự cố khác được tạo ra là chúng tôi muốn một số trang trong lịch sử. Chúng tôi không muốn người dùng truy cập quay lại tới trang INSERT.

này có thể dễ dàng thực hiện với location.replace trên INSERT trang khi kết thúc, nhưng không thể trên FIREFOX với nhiều mục cùng INSERT trang.

Trả lời

1

Nếu vấn đề là các mục của bạn được nhân đôi, đi

history.back(-2) 

hoặc -3, hoặc -4 nếu cần thiết thay vì history.back() or history.back(-1). Nhưng sau đó, nếu tôi là bạn, tôi sẽ cố gắng mương các giải pháp dựa trên iframe và xây dựng một cái gì đó không liên quan đến chúng, vì sự giao tiếp giữa iframes và tài liệu gốc có xu hướng là một lỗi magnet-

3

Không chắc liệu sự cố của bạn có giống với ngày hôm nay hay không, nhưng ...

Khi có iframe trên trang và iframe src thay đổi, trình duyệt (FF 4.0 trong trường hợp của tôi) coi nó là điều hướng và khi nhấn nút quay lại, nó điều hướng một bước trở lại bên trong iframe này.

Tuy nhiên, nó hoạt động khác nhau khi bạn tạo khung nội tuyến động này với javascript sau khi trang được tải. Việc thay đổi liên tiếp các iframe src không được tính là điều hướng và trình duyệt không đưa bất kỳ trang nào vào lịch sử, dẫn đến hành vi mong đợi của nút quay lại.

+1

Tôi không biết nếu điều này là chính xác trong năm 2011, nhưng điều này không chính xác ngày hôm nay nếu tôi đọc chính xác điều này. Khung nội tuyến phải được thay thế hoặc tạo cùng lúc với sự kiện lịch sử được sửa đổi. (trong cùng một chuỗi chức năng) Cơ chế truyền bá chuỗi sự kiện lùi/chuyển tiếp do đó không thêm khung nội tuyến mới được tạo này vào Firefox, và tất cả đều tốt. – Agamemnus

Các vấn đề liên quan