2011-02-16 17 views
15

Với tất cả các báo chí tiêu cực trên Twitter và việc sử dụng các url băm của Gawker, tôi đang gặp khó khăn trong việc tìm kiếm bất kỳ ví dụ/thư viện nào về cách sử dụng chúng.Có thư viện javascript nào để làm việc với url băm/shebang (#!) Không?

Tôi muốn sử dụng url băm trong băng chuyền javascript trên trang web của chúng tôi để chúng tôi có thể liên kết trực tiếp đến một trang cụ thể của băng chuyền.

Có bất kỳ thư viện hoặc ví dụ trình duyệt chéo tốt nào (tốt nhất là không phải jQuery, vì chúng tôi sử dụng Prototype) cho cả việc đẩy url mới vào vị trí trang và phân tích url trên tải trang không?

+1

Báo chí tiêu cực? Dường như [hoàn toàn có thể chấp nhận được] (http://code.google.com/web/ajaxcrawling/docs/specification.html) với tôi. –

+0

Vâng .. bạn đang đề cập đến báo chí tiêu cực nào? – drudge

+1

Đây là một trong những cách sau: "Phá vỡ web với Hash Bangs" http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs Điều tôi thích đặc biệt là khi tác giả nói về cách HashBang và sự liên quan quá mức về tính chính xác của JavaScript không được viết bởi các tác giả trang web có, trong thế giới mới của HTML quản lý để phá vỡ các trang web trong tất cả các cách mà những người sợ XHTML nói rằng XHTML sẽ. – scriptocalypse

Trả lời

6

Chúng tôi đã làm việc trên thư viện thực hiện ánh xạ tuyến đường URL: https://github.com/OpenGamma/RouteMap nếu bạn vẫn đang tìm kiếm.

+0

Vì vậy, nếu tôi đọc chính xác, bạn thêm các mẫu url vào thư viện, và khi hàm băm thay đổi để khớp với một trong các mẫu, nó kích hoạt một hàm liên quan? – ChiperSoft

+0

Vâng, đúng vậy. Tôi đã cập nhật tài liệu để làm rõ hơn một chút. Xin lỗi vì sự phản ứng chậm. – afshin

+0

Đây là nhiều hơn hoặc ít hơn những gì tôi đang tìm kiếm. Cảm ơn bạn! – ChiperSoft

0

https://github.com/browserstate/History.js Tôi không có kinh nghiệm với nó khi tôi sử dụng BBQ Jquery, nhưng có vẻ như nó sẽ giải quyết vấn đề của bạn.

+0

Điều này thực sự gần , nhưng nó tạo ra các url hoàn toàn khác nhau trong các trình duyệt khác nhau. Tôi cần nó nhất quán. – ChiperSoft

1

Sammy.js sử dụng chúng để tạo trình xử lý giống như trình xử lý được sử dụng trong Sinatra.

0

Thư viện đóng cửa của Google có triển khai thực sự tuyệt vời cho ngăn xếp lịch sử trình duyệt. Bạn có thể truy cập mã nguồn lịch sử from here.

Để sử dụng Trình quản lý lịch sử Thư viện đóng cửa, bạn nên xác định đầu vào bị ẩn. Có lừa. Nếu bạn không đưa ra một trường nhập vào lớp, nó sẽ tạo một trường cho bạn, nhưng nó sẽ cố gắng thêm nó vào DOM với document.write vì hỗ trợ trình duyệt chéo. Cách tốt nhất và dễ dàng là cung cấp đầu vào bị ẩn.

Dưới đây là triển khai đơn giản goog.History.

var history = new goog.History(false, '', document.getElementById('historyInput')); 
goog.events.listen(history, goog.history.EventType.NAVIGATE, function() { 
    console.log(history.getToken()); 
}); 
history.setEnabled(true); 

Sau đó điều hướng đến một số url được băm trong trang của bạn và bạn sẽ thấy hàm băm đã thay đổi trong bảng điều khiển dưới dạng nhật ký.