1

我试图用 ajax 重新加载页面。url 包含一个哈希(ancor)

index.php?page=2&obj=3#lb

我尝试使用 location.reload() 或 windows.location.reload(true)

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

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

    $.post("testpost.php", {userid:userid}, function(data){

    //window.location.reload(true);
            location.reload();

    });
});

使用 FF、Chrome 和 Opera 可以完美运行,但是使用 IE 时,当页面重新加载时(即使浏览器的 url 中有哈希),不考虑 ancor 并从上方查看页面。我该如何解决这个问题?谢谢

编辑

$(document).ready(function() {

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

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

  $.post("testpost.php", {userid:userid}, function(data){

    location.reload();

    });
  });

 var hash, el;
 if(hash = location.hash.substring(1) && el = document.getElementById(hash)) {
    el.scrollIntoView(true);
 }

});
4

1 回答 1

3

您可以尝试使用location.hash.substring(1)获取元素的 id,使用 获取它document.getElementById,然后使用scrollIntoView它:

document.getElementById(location.hash.substring(1)).scrollIntoView(true);

在您的情况下,您希望它在重新加载后发生,因此您可以使用

$(document).ready(function() {
    var hash, el;
    if((hash = location.hash.substring(1)) && (el = document.getElementById(hash))) {
        el.scrollIntoView(true);
    }
});
于 2013-10-26T16:58:34.440 回答