Window.location.hash需要语法帮助

时间:2011-08-25 20:46:57

标签: jquery hash window.location

我的网站位于http://visualise.ca/,当您点击缩略图加载帖子时,它会使用ajax在页面中加载帖子。当您关闭帖子时,它会使用此代码将网址更改回http://visualise.ca/而不重新加载页面:

$("#close").live("click", function(event) {
    $("#board").fadeOut("slow");
    $("#board-wrapper").slideUp("slow");
    $("html,body").delay(1000).animate({scrollTop: 0}, 300);
    window.location.hash = "";
    window.history.pushState(null,null,site_url+"/");
    return false;
});

但在IE8中,它会将其更改回http://visualise.ca/#而不是http://visualise.ca/。有没有办法纠正这个问题,并确保将其更改为http://visualise.ca/

5 个答案:

答案 0 :(得分:3)

这不会阻止吗?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script>
    $(document).ready(function() {    
    $(".testPhoto").click(function(event){
        event.stopPropagation();
        alert("do something");
        return false;
    });  
});
</script>
<a class="testPhoto" href="#testPhoto" onclick="testPhoto">Test Photo</a>

答案 1 :(得分:1)

IE9将重新加载页面,而没有结束哈希#。我的建议是检查IE并删除或删除内容。如果你确实需要精确的方法,你将不得不躲避一些IE Quirks。

 if ( jQuery.browser.msie && ( parseInt( jQuery.browser.version ) < 9 ) ) {
     window.location = 'http://visualise.ca";
     document.execCommand( 'stop' );
 }

答案 2 :(得分:1)

我最近碰巧做了很多ajax历史。我正在尝试我自己的实现,我浏览页面和模态,然后返回和第四。取得了很好的进展。

自测试开始以来,我注意到了根哈希; ONCE CHANGED回到初始页面(它全部开始)它只会丢失哈希(#),如果它是一个BROWSER BACK按钮点击。如果我将哈希值更改回'',它将始终显示/#。

就IE8而言,我不相信有任何解决方案,但使用iFrame黑客,因为我还没有去测试IE8 / iframe hack,我不能评论它。

对于我的解决方案,我使用哈希和纯命令控制的混合。我应该在几周内对最终版本进行全面测试(一厢情愿)。

此外,谁关心是否在网址的末尾留下了哈希/锐利。一旦我访问网站,我从来没有看过URL;我只看一下页面的内容。真的:它只是打击了我,只有当我想要复制和粘贴它时,网址才是重要的。除此之外,我从不看它。

答案 3 :(得分:0)

window.location = window.location.href.replace( /#.*/, "");

这适用于IE。

答案 4 :(得分:0)

$('#close').click(function(){

window.location = "http://visualise.ca/";

});