1

我需要使用此 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);

})();
4

2 回答 2

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);
于 2013-09-11T20:51:19.720 回答
0

那是因为你的历史是空的。为此,您需要使用

 history.pushState();

之后我的按钮开始工作

于 2013-05-08T08:55:02.767 回答