使用/ Ajax加载哈希导航

时间:2015-03-29 00:06:24

标签: javascript jquery ajax hashtag

我有一个页面,当我点击链接时,它会加载具有不同内容的DIV。

function getAjax(myID,file,room){
    room = typeof room !== 'undefined' ? room : 0;
    var myResult;
    var raNum = Math.floor((Math.random() * 100) + 1);
    $.ajax({
        type: "POST",
        cache: false,
        async: false,
        url: '<?php echo PATH;?>ajax/'+file+'.php?num='+raNum+'&lang=<?php echo $_SESSION['lang'];?>',
        data: {"id": myID, "room": room},
        success: function(data){
            window.location.hash = "TEST";
            if ($('.infowin').css('visibility') === 'visible' && file != 'infowin') {
                $('.infowin').hide();
                $('.hName').html('<?php echo RN_FE_TOP_INFOWIN_LOAD;?>...').removeClass('green').removeClass('orange');
                $('.infoWinContent').html('');
                $('.awards').html('');
            }
            myResult = data;
        },
        error: function(data, errorThrown){
            console.log('request failed :'+errorThrown);
        }
    });
    return myResult;
  }

链接:

$('.mReservation').on('click', function(e){
        var raNum = Math.floor((Math.random() * 10000) + 1);
        e.preventDefault();
        var hotel_id = "0";
        var getPage = getAjax(hotel_id,"cancel");
        $("#all-content").html(getPage).css("overflow-y","auto");
    });

当我点击浏览器的BACK按钮时,它将始终转到上一页。有没有办法让后退按钮&#34;撤消&#34;最后一个jquery ajax调用?我读了一些关于#hashnavigation的内容,所以我在ajax&#39;成功功能:

window.location.hash = "TEST";

它会在URL中添加一个#TEST,但现在点击BACK只会导致删除哈希值。有没有办法在jquery中实现这一点?

1 个答案:

答案 0 :(得分:0)

历史记录API具有允许您操作网站浏览历史记录的功能。散列路由是一种管理网站内容而无需刷新页面的方法。当url哈希更新时,新内容将加载到页面上。有一些库可以处理这个问题,他们使用History API。您可以查看的一些库名为here