2011-08-25 46 views
6

Plugin jQuery HISTORY.js (https://github.com/browserstate/History.js/) cung cấp tính năng triển khai đẩy lịch sử HTML5 và trong trường hợp trình duyệt không hỗ trợ, sẽ có thể triển khai tính năng hashtag HTML4. Các tập tin tài liệu/README chi tiết việc sử dụng như vậy:Thực hiện History.js HTML4 Dự phòng

var History = window.History; // Note: We are using a capital H instead of a lower h 
    if (!History.enabled) { 
     // History.js is disabled for this browser. 
     // This is because we can optionally choose to support HTML4 browsers or not. 
     return false; 
    } 

Như bạn có thể thấy, các tài liệu hướng dẫn giải thích việc sử dụng các plugin HISTORY.js đến điểm của HTML5 và không giải thích việc sử dụng sự hỗ trợ HTML4.

Tuy nhiên, dưới sự "Tải & Cài đặt" của các tài liệu, nó đọc:

5. Include History.js 
<script src="http://www.yourwebsite.com/history.js/scripts/compressed/history.js">/script> 
<script src="http://www.yourwebsite.com/history.js/scripts/compressed/history.html4.js"></script> 

Các hướng dẫn ở đây có thể truyền đạt rằng sự hỗ trợ HTML4 hashtag là tự động nhưng các hướng dẫn trên trang sử dụng gợi ý rằng nó phải được thực hiện thủ công; mà tôi tin thực sự là trường hợp.

Tôi không thể tìm thấy bất kỳ tài liệu nào khác về việc triển khai tính năng hashtag HTML4. Xin hãy giúp tôi tìm ra điều này.

+0

Cách bạn có điều này bằng văn bản, nó có thể sẽ được đóng lại. Vui lòng giải thích những gì bạn đã thử và cung cấp các ví dụ rõ ràng về những gì không hiệu quả và nơi bạn cần trợ giúp. Nếu không, hãy đọc tài liệu về công cụ và tìm diễn đàn để thảo luận chung hơn. [Xem "Tôi không nên hỏi những câu hỏi nào ở đây?"] (Http://stackoverflow.com/faq#dontask) – OverZealous

+0

Ok, xin lỗi. Cảm ơn đã cho tôi biết tôi đã làm gì sai. Tôi chỉ nghĩ rằng nếu tôi viết quá nhiều người sẽ không đọc nó. Tôi sẽ chỉnh sửa bài đăng để giải thích thêm. –

+0

Bạn đã thử chưa? Có vẻ như các plugin sẽ tự động làm suy giảm một cách duyên dáng (nó sẽ hoạt động với HTML4 mà không cần thực hiện thêm). – JJJ

Trả lời

1

Ok có thể vấn đề là bạn không sử dụng History.js đúng cách (đó là vấn đề tôi đang gặp phải). Về cơ bản sử dụng History.js trong cách chính xác bạn phải làm điều gì đó như:

// Register navigation click handlers where you will load Ajax content 
$(window).on('click', 'a.ai1ec-load-view', handle_click_on_link_to_load_view); 
// Bind to the statechange event 
$(window).bind('statechange', handle_state_change); 

// When the state changes, load the corresponding view 
var handle_state_change = function(e) { 
    var state = History.getState(); 
    load_view(state.url, 'json'); 
}; 

// When clicking on a link you want to load, trigger statechange by changing state 
var handle_click_on_link_to_load_view = function(e) { 
    e.preventDefault(); 
    History.pushState({ target :this }, null, $(this).attr('href')); 
}; 

Trước khi làm điều này tôi đã không nghe statechange và tôi đã chỉ đơn giản là sử dụng pushState() trong xử lý liên kết nhấp chuột.

Nếu bạn làm điều đó như thế này không có nhu cầu để mã một dự phòng, nó sẽ làm việc cũng trong các trình duyệt HTML4 (và bookmark từ các trình duyệt HTML4 sẽ làm việc như mong đợi)

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