2011-08-11 38 views
8
  1. Trang Lượt truy cập của người dùng A và nhấp chuột xung quanh một vài lần, điều chỉnh trạng thái trang khi họ đi.
  2. Trang A cuối cùng chuyển hướng người dùng đến trang B
  3. Người dùng nhấp chuột duyệt lại nút, thấy Trang A một lần nữa trong trình duyệt

tôi cần phải thực hiện một số giao diện sạch-up trên bước 3.Làm cách nào để xử lý người dùng đến trang thông qua nút trình duyệt ngược?

thế nào thế nào để tôi nắm bắt sự kiện này trong Trang A?

+2

Đây là bài đăng tương tự bao gồm việc sử dụng jQuery và nút quay lại: http://stackoverflow.com/questions/158319/cross-browser-onload-event-and-the-back-button –

Trả lời

1

Ngoài việc có thể đặt cookie, bạn không thể do giới hạn bảo mật của trình duyệt. Một công việc xung quanh sẽ là kiểm tra xem người dùng có điều hướng khỏi trang thông qua onbeforeunload hoặc onunload fire hay không.

1

Bạn có thể sử dụng hàm băm URL để điều hướng đến trang B và sử dụng AJAX và jQuery để tải trang mới không? Do đó, trình duyệt không thực sự rời khỏi trang. Khi người dùng điều hướng trở lại, tất cả những gì họ sẽ làm là thay đổi hàm băm URL trở lại. Sau đó, bạn có thể nắm bắt sự kiện hashchange để xem liệu người dùng đã điều hướng trở lại trang A.

+0

Connel, tôi thích ý tưởng, nhưng tôi nghĩ ứng dụng web của chúng tôi sẽ quá nặng đối với phương pháp này. Đó là một ứng dụng thương mại điện tử trong DotNetNuke với ASP.NET Web Forms –

+0

Ah, luôn luôn đáng để đề nghị!Bạn đã thử câu trả lời được chấp nhận trong bài đăng mà @Rionmonster đề xuất chưa? – Connell

+0

Chưa, cần một chút thời gian để phân tích. Có vẻ đầy hứa hẹn –

1

Tôi sẽ đưa ra một vài giả định để trình bày cách này không hoàn toàn phụ thuộc vào javascript:

  1. Bạn lưu ý trong các nhận xét cho câu trả lời khác rằng đây là ứng dụng ASP.NET. Tôi sẽ giả định rằng bạn chỉ quan tâm đến nút quay lại nơi nó đang được nhấn từ một trang khác trong ứng dụng ASP.NET của bạn.
  2. Bạn kiểm soát mã phía máy chủ được thực hiện trong mã ASP.NET phía sau cho cả trang được đề cập và cho (các) trang, nó sẽ cần phải "quay lại".

Nếu cả hai điều kiện này đều đúng thì bạn có thể sử dụng Session variable! Chỉ cần đặt trang hiện tại thành biến currPage được duy trì theo phiên trên tất cả các trang liên quan. Sau đó, khi trang đang tải, hãy kiểm tra và sử dụng nó để điều chỉnh cách hiển thị trực tiếp trang hoặc viết giá trị cho trường/đầu vào/div ẩn, javascript của bạn có thể đọc và sử dụng để phản ứng một cách thích hợp.

Nếu bạn sử dụng tuyến đường JS-read-and-execute, bạn sẽ muốn kiểm tra để đảm bảo các sự kiện được kích hoạt đúng trên tất cả các trình duyệt sau một nút tải-từ-lưng. Như đã đề cập trong the link from Rionmonster, đôi khi sự kiện onload có thể không kích hoạt sau nút quay lại. Nếu bạn thấy vấn đề này, thì hãy sử dụng các thủ thuật được đề cập ở đó để giải quyết vấn đề. Đây là loại giải pháp nên hoạt động cho bất kỳ ứng dụng web nào sử dụng mã phía máy chủ có khả năng tương tác với các biến Session (ví dụ: nó cũng sẽ hoạt động với PHP, Python và nhiều loại khác).

Lưu ý: Có khả năng điều này sẽ không hoàn toàn thanh lịch như âm thanh. Trong nhiều trường hợp, các trình duyệt có thể không thực sự kéo trang mới từ máy chủ sau khi nhấn nút quay lại. Nếu thử nghiệm cho thấy đây là một vấn đề, bạn có thể cần phải sử dụng một số kỹ thuật AJAX để điền thông tin mới vào JS sau khi nhấn nút quay lại.

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