2013-06-14 37 views
5

Tôi đang nhắm mục tiêu cả hai nút "back" và "forward" cùng với JavaScript này đoạn mã:trình duyệt Target trở lại và nút chuyển tiếp riêng

window.addEventListener("popstate", function(event) { 
    // do something cool 
} 

Làm thế nào tôi có thể phân biệt giữa "trở lại" và "chuyển tiếp" nút và mục tiêu sự kiện của họ một cách riêng biệt?

+2

Một cách tôi có thể nghĩ là: khi bạn 'pushState' thêm một số vào đối tượng trạng thái, và tăng nó mỗi khi bạn' pushState'. Bây giờ khi bạn tiến lên hoặc quay lại, bạn có thể so sánh con số đó với trạng thái hiện tại và kiểm tra xem con số đó có lớn hơn hay nhỏ hơn không. Không chắc chắn nếu điều này sẽ làm việc, nhưng đó là một ý tưởng. –

+0

Ý tưởng thú vị, @RocketHazmat, cảm ơn bạn! –

+0

Bạn được chào đón. Tôi không biết nếu có "chính thức" cách để làm điều này, nhưng có vẻ như nó sẽ làm việc. Tôi là một chút bận rộn, vì vậy tôi không có thời gian để whip lên một ví dụ :-) –

Trả lời

0

Bạn không cần phải theo dõi lại/chuyển tiếp hoặc lịch sử nếu bạn triển khai chính xác. Mỗi tệp XML bạn tải phải được cấp một id duy nhất, chỉ cần thay thế dấu gạch chéo về phía trước bằng dấu gạch dưới và nhớ rằng bạn không nên sử dụng dấu gạch dưới cho các url thực, thay vào đó bạn sử dụng dấu gạch ngang. Giả sử bạn không có một lược đồ url mà sẽ làm cho việc sử dụng Windows 8 có vẻ không sát nhân bằng cách so sánh, bạn chỉ cần kiểm tra id được yêu cầu.

Bạn có thể xem như thế nào popstate tác phẩm trên trang web của tôi ...

http://www.jabcreations.com/blog/

Thực hiện Ctrl + f và nhìn vào mã bắt đầu xung quanh dòng ...

window.onclick = function(e) 

. ..here ...

http://www.jabcreations.com/scripts/index.js

Nếu y đang sử dụng Firebug mở rộng #liquid (theo nghĩa đen là <body><div id="body"><div id="content"><div id"liquid"> trong XHTML của tôi).

Nếu bạn bị lạc, hãy cho tôi biết và tôi sẽ làm rõ mã đang làm gì. Ngoài ra nó giúp rất nhiều để thiết lập mã của bạn đến mức nghiêm ngặt nhất có thể (XHTML là application/xhtml + xml và nội dung XML của bạn nên được phân phát dưới dạng application/xml).

+0

Cung cấp nội dung dưới dạng 'application/xhtml + xml' là một cách hay để ngắt IE 8. Ngoài ra, nếu trang web của bạn từng bị hỏng, câu trả lời này là vô ích. Vui lòng tránh liên kết và bao gồm mã ở đây để thay thế. – Stijn

+0

Cảm ơn bạn đã bình chọn @Stijn! Rõ ràng bạn chưa bao giờ nghe nói về thương lượng nội dung. > __> Bạn cũng R CLE RÀNG truy cập trang web của tôi bằng IE8 hoặc cũ hơn (NOT) để xác nhận điều này trước khi bỏ phiếu không ý thức. Figaro hỏi một câu hỏi mơ hồ, nhận được câu trả lời và chấp nhận điều đó, rõ ràng khả năng của họ để tiến lên xúc phạm bạn. – John

+0

Sau đó, bạn nên hoàn thành và đề cập đến vấn đề IE 8. Và tôi đã downvoted bạn vì hai lý do, không phải một. Thực ra tôi sẽ thêm một phần ba. XHTML đã bị hủy bỏ để ủng hộ HTML 5. – Stijn

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