带有后退和前进按钮的history.pushState

时间:2013-05-08 07:45:36

标签: javascript ajax html5 jquery

我需要使用这个ajax方法制作后退和前进按钮 这段代码工作正常,浏览器上的URL也应该更改为 但是当你点击后退和前进按钮时,没有任何事情发生

(function(){

    function clickNav(e){
        e.preventDefault();
        var href = $(this).attr('href');
        history.pushState(null, null, href);

        $.ajax({
            url: href,
            dataType: 'html',
            cache: false
        }).done(function(html){
            var $html = $(html);

            $('title').html($html.filter('title').text());
            $('#content').replaceWith($html.find('#content'));
            $('#nav').replaceWith($html.find('#nav'));

            $('#nav li a').on('click',clickNav);
        });

    }
    $('#nav li a').on('click',clickNav);

})();

2 个答案:

答案 0 :(得分:1)

我今天必须处理这件事。以下适用于我(目前在Win 7中的四个浏览器上测试过)...

//CHECK FOR ADDRESS BAR CHANGE EVERY 500ms
var wwcint = window.setInterval(function(){
    if(window.last_location_href == undefined) {
        window.last_location_href = document.location.href;
    } else if(window.last_location_href != document.location.href) {
        window.last_location_href = document.location.href;

        //DO WHATEVER YOU NEED TO DO TO LOAD THE CORRECT CONTENT
        someFunctionToLoadTheContent(document.location.href);
    }
}, 500);

答案 1 :(得分:0)

这是因为你的历史是空的。为此你需要使用

 history.pushState();

之后我的按钮开始工作