window history ajax,Cross-browser jquery ajax history with window.history.pushState and fallback

Something i've been using with fallback hash URL's:

History = History || {};

History.pathname = null;

History.previousHash = null;

History.hashCheckInterval = -1;

History.stack = [];

History.initialize = function () {

if (History.supportsHistoryPushState()) {

History.pathname = document.location.pathname;

$(window).bind("popstate", History.onHistoryChanged);

} else {

History.hashCheckInterval = setInterval(History.onCheckHash, 200);

}

};

History.supportsHistoryPushState = function () {

return ("pushState" in window.history) && window.history.pushState !== null;

};

History.onCheckHash = function () {

if (document.location.hash !== History.previousHash) {

History.navigateToPath(document.location.hash.slice(1));

History.previousHash = document.location.hash;

}

};

History.pushState = function (url) {

if (History.supportsHistoryPushState()) {

window.history.pushState("", "", url);

} else {

History.previousHash = url;

document.location.hash = url;

}

History.stack.push(url);

};

History.onHistoryChanged = function (event) {

if (History.supportsHistoryPushState()) {

if(History.pathname != document.location.pathname){

History.pathname = null;

History.navigateToPath(document.location.pathname);

}

}

};

History.navigateToPath = function(pathname) {

History.pushState(pathname);

// DO SOME HANDLING OF YOUR PATH HERE

};

You could bind your click events to this with:

$(function(){

$("a").click(function(){

var href = $(this).attr('href');

History.navigateToPath( href )

return false;

});

});

If you need some more explanation on this example i'll be glad to hear it.

EDIT

Please see my other answer.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值