首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery:单击删除URL片段

jquery:单击删除URL片段
EN

Stack Overflow用户
提问于 2011-06-27 16:38:36
回答 3查看 3.3K关注 0票数 1

我有这种哈希URL,

代码语言:javascript
复制
http://mysite.com/projects/#/article-1/
http://mysite.com/projects/#/article-2/
http://mysite.com/projects/#/article-2/

当我单击页面上的按钮而不重定向页面时,我希望删除散列位(片段)。

代码语言:javascript
复制
$('.back').click(function(){


    // remove the fragment.
    // don't know how to make it..
    return false;

});

所以我只能拿到这个,

代码语言:javascript
复制
http://mysite.com/projects/

我怎么能这么做?

谢谢。

编辑:这个站点是怎么做的?如果您单击ajax加载页面上的关闭项目,例如-

代码语言:javascript
复制
http://www.pentagram.com/work/#/all/all/newest/2534/

你会把这个拿回来的

代码语言:javascript
复制
http://www.pentagram.com/work/#/all/all/newest/
EN

回答 3

Stack Overflow用户

发布于 2011-06-27 16:41:43

简单的答案是:

代码语言:javascript
复制
window.location.hash = '';

不过,这将给您留下一个落后的#

票数 2
EN

Stack Overflow用户

发布于 2011-06-27 16:48:47

如果我对你的理解是对的,你可以试着模仿正常情况,我的意思是:

  • 单击“防止默认操作”
  • 分析链接,得到哈希部分。
  • 找到页面(y坐标)上的锚点。
  • 滚动到锚

就像这样:

代码语言:javascript
复制
$("a").click(function() {
    var loc = $(this).attr("href").split("#"),
        hash = loc[1] ? loc[1] : null;
    if (hash && $("a[name="+hash+"]").size() > 0)
    {
        var pos = $("a[name="+hash+"]").position();
        $(window).scrollTop(pos.top);
        return false;
    }
});

这样,url就会保持不变,但是您有这个功能。

票数 1
EN

Stack Overflow用户

发布于 2011-06-27 16:41:31

我很确定这不可能。但是,您可以在散列之后通过像下面这样设置位置散列来消除所有内容:

代码语言:javascript
复制
location.hash = '';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6496051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档