jQuery có một plugin tuyệt vời để thay đổi URL của trình duyệt, được gọi là jQuery-pizer .
JavaScript pushState
và jQuery có thể được sử dụng cùng nhau, như:
history.pushState(null, null, $(this).attr('href'));
Thí dụ:
$('a').click(function (event) {
// Prevent default click action
event.preventDefault();
// Detect if pushState is available
if(history.pushState) {
history.pushState(null, null, $(this).attr('href'));
}
return false;
});
Chỉ sử dụng JavaScript history.pushState()
, thay đổi tham chiếu, được sử dụng trong tiêu đề HTTP cho các đối tượng XMLHttpRequest được tạo sau khi bạn thay đổi trạng thái.
Thí dụ:
window.history.pushState("object", "Your New Title", "/new-url");
Phương thức PushState ():
pushState()
nhận ba tham số: một đối tượng trạng thái, một tiêu đề (hiện đang bị bỏ qua) và (tùy chọn) một URL. Hãy xem xét từng thông số trong ba thông số này một cách chi tiết hơn:
đối tượng trạng thái - Đối tượng trạng thái là một đối tượng JavaScript được liên kết với mục lịch sử mới được tạo bởi pushState()
. Bất cứ khi nào người dùng điều hướng đến trạng thái mới, một sự kiện popstate sẽ được kích hoạt và thuộc tính trạng thái của sự kiện chứa một bản sao của đối tượng trạng thái của mục lịch sử.
Đối tượng trạng thái có thể là bất cứ điều gì có thể được nối tiếp. Vì Firefox lưu các đối tượng trạng thái vào đĩa của người dùng để chúng có thể được khôi phục sau khi người dùng khởi động lại trình duyệt của cô ấy, chúng tôi áp đặt giới hạn kích thước 640k ký tự trên biểu diễn tuần tự của một đối tượng trạng thái. Nếu bạn truyền một đối tượng trạng thái có biểu diễn tuần tự lớn hơn đối tượng này pushState()
, phương thức sẽ đưa ra một ngoại lệ. Nếu bạn cần nhiều dung lượng hơn mức này, bạn nên sử dụng sessionStorage và / hoặc localStorage.
tiêu đề - Firefox hiện bỏ qua tham số này, mặc dù nó có thể sử dụng nó trong tương lai. Truyền chuỗi rỗng ở đây sẽ an toàn trước các thay đổi trong tương lai của phương thức. Ngoài ra, bạn có thể chuyển một tiêu đề ngắn cho trạng thái mà bạn đang di chuyển.
URL - URL của mục lịch sử mới được cung cấp bởi tham số này. Lưu ý rằng trình duyệt sẽ không tải URL này sau khi gọi đến pushState()
, nhưng nó có thể cố gắng tải URL sau, chẳng hạn sau khi người dùng khởi động lại trình duyệt của mình. URL mới không cần phải tuyệt đối; nếu nó tương đối, nó được giải quyết liên quan đến URL hiện tại. URL mới phải có cùng nguồn gốc với URL hiện tại; nếu không, pushState()
sẽ ném một ngoại lệ. Tham số này là tùy chọn; nếu không được chỉ định, nó được đặt thành URL hiện tại của tài liệu.