标签: fragment-identifier

你可以使用哈希导航而不影响历史吗?

恐怕这可能是不可能的,但有没有办法改变一个URL的哈希值不留在浏览器的历史记录中的条目没有重装?或者做同等的?

至于具体细节,我正在开发一些基本的哈希导航:

//hash nav -- works with js-tabs
var getHash = window.location.hash;
var hashPref = "tab-";
function useHash(newHash) {
    //set js-tab according to hash
    newHash = newHash.replace('#'+hashPref, '');
    $("#tabs li a[href='"+ newHash +"']").click();
}
function setHash(newHash) {
    //set hash according to js-tab
    window.location.hash = hashPref + newHash;

    //THIS IS WHERE I would like to REPLACE the location.hash
    //without a history entry

}
    // ... a lot of irrelavent tabs js and then....

    //make tabs …
Run Code Online (Sandbox Code Playgroud)

javascript jquery browser-history fragment-identifier browser-state

96
推荐指数
3
解决办法
4万
查看次数

87
推荐指数
2
解决办法
6万
查看次数

URL中片段标识符的有效字符列表?

我正在使用片段标识符为我的Web应用程序中的AJAX事件创建一个永久链接,类似于这个人.就像是:

http://www.myapp.com/calendar#filter:year/2010/month/5
Run Code Online (Sandbox Code Playgroud)

我做了很多搜索,但找不到片段识别符的有效字符列表.在W3C规范不提供任何内容.

我是否需要将字符编码与一般的URL相同?

在任何地方似乎都没有任何好的信息.

fragment-identifier

83
推荐指数
2
解决办法
2万
查看次数

带锚的ASP.Net MVC RedirectToAction

我有以下问题:例如我有这样的路线:

routes.Add(new Route("forums/thread/{threadOid}/last", new MvcRouteHandler())
           Defaults = new RouteValueDictionary(
             new { controller = "Thread", action ="ShowThreadLastPostPage"}),
        Constraints = new RouteValueDictionary(new { threadOid = @"^\d+$" })
    }
);
Run Code Online (Sandbox Code Playgroud)

有没有办法使用RedirectToAction方法导航到这样的URL:

forums/thread/{threadOid}/last#postOid

asp.net asp.net-mvc fragment-identifier

80
推荐指数
2
解决办法
2万
查看次数

如何在不导致页面滚动的情况下删除位置哈希?

是否有可能删除哈希window.location而不会导致页面跳转到顶部?我需要能够修改哈希而不会引起任何跳转.

我有这个:

$('<a href="#123">').text('link').click(function(e) {
  e.preventDefault();
  window.location.hash = this.hash;
}).appendTo('body');

$('<a href="#">').text('unlink').click(function(e) {
  e.preventDefault();
  window.location.hash = '';
}).appendTo('body');
Run Code Online (Sandbox Code Playgroud)

在这里查看实例:http://jsbin.com/asobi

当用户单击" 链接 "时,修改的哈希标记没有任何页面跳转,因此工作正常.

但是当用户点击" 取消链接 "时,删除了has标记,页面滚动跳转到顶部.我需要删除没有这种副作用的哈希.

javascript jquery fragment-identifier

76
推荐指数
3
解决办法
8万
查看次数

检测URL中的后退按钮/哈希值更改

我刚在http://ritter.vg上设置了我的新主页.我正在使用jQuery,但非常简单.
它使用AJAX加载所有页面 - 我将其设置为通过检测URL中的哈希来允许书签.

 //general functions
 function getUrl(u) {
      return u + '.html';
 }
 function loadURL(u)    {
      $.get(getUrl(u), function(r){
                $('#main').html(r);
           }
      );
 }
 //allows bookmarking
 var hash = new String(document.location).indexOf("#");
 if(hash > 0)
 {
      page = new String(document.location).substring(hash + 1);
      if(page.length > 1)
        loadURL(page);
      else
        loadURL('news');
 }
 else
      loadURL('news');
Run Code Online (Sandbox Code Playgroud)

但我不能让后退和前进按钮工作.

有没有办法检测何时按下后退按钮(或检测哈希值何时更改)而不使用setInterval循环?当我尝试使用.2和1秒超时时,它固定了我的CPU.

javascript navigation ajax fragment-identifier hashchange

60
推荐指数
4
解决办法
11万
查看次数

facebook如何在浏览器地址栏中重写页面的源URL?

转到http://www.facebook.com/facebook?v=wall,然后单击信息选项卡.内容将被加载,地址栏现在变为http://www.facebook.com/facebook?v=info但网页没有重新加载.

起初我认为它是Ajax,但我的问题是,如何在不重新加载的情况下更改地址栏?我知道我可以使用JS更改锚点(#wall)但是querystring(?v = wall),怎么样?

javascript ajax html5 webkit fragment-identifier

60
推荐指数
2
解决办法
4035
查看次数

在jQuery中更改哈希而不重新加载

我有以下代码:

$('ul.questions li a').click(function(event) {
    $('.tab').hide();
    $($(this).attr('href')).fadeIn('slow');
    event.preventDefault();
    window.location.hash = $(this).attr('href');
});
Run Code Online (Sandbox Code Playgroud)

这简单地根据您点击的时间淡化div,但我希望您点击时更改页面URL哈希标记,以便人们可以复制和添加书签.目前,当哈希标签发生变化时,这会有效地重新加载页面.

是否可以更改哈希标记而不重新加载页面以防止跳跃效应?

hash jquery reload window.location fragment-identifier

52
推荐指数
1
解决办法
10万
查看次数

从url中删除哈希

我是ajax-ifying在我的一个项目中的分页,因为我希望用户能够为当前页面添加书签,我通过哈希附加页码,说:

onclick="callPage(2); window.location.hash='p=2'; return false;"
Run Code Online (Sandbox Code Playgroud)

并且hyperlink它在它上面工作正常和一切,除了,当页码是1,我不想URL成为/products#p=1,我只是希望它是/products

我试过这些变化:

  1. window.location.hash=''工作,但网址现在像/products#,我不是那里的哈希.
  2. 根本没有使用window.location.hash,但当用户从第3页回到第1页时,他在第一页,但是url仍然是/products#p=3因为我没有弄乱哈希.
  3. 谷歌搜索这导致我几分钟(约15)愚蠢的论坛,问题被正确,但答案是建议页面跳跃,因为线程创建者在href中有一个哈希<a href="#">,他应该使用javascript:void(0).(他们从未听说过Ajax吗?)

所以最后,我决定制作这个帖子,我在这里发现了几个类似的线程,但所有的答案与我的第二点非常相似.

所以我的一个大问题仍然是一个问题:如何从网址中挖出哈希,并可能离开宇宙?(仅限第一页!)

javascript ajax fragment-identifier

52
推荐指数
4
解决办法
8万
查看次数

使用jquery ui制表符更改location.hash

我一直在尝试找到一种方法将window.location.hash更改为Jquery UI选项卡中当前选定的选项.

我试过了:

$("#tabs > ul").tabs();
$("#tabs > ul").bind("tabsshow", function(event, ui) { 
window.location.hash = ui.tab;
})
Run Code Online (Sandbox Code Playgroud)

这会导致在更改选项卡时将哈希值更改为#undefined.

我也尝试过:

$("#tabs > ul").tabs({ 
select: function(event, ui) { 
window.location.hash = ui.tab }
});
Run Code Online (Sandbox Code Playgroud)

但这似乎根本没有触发.

任何帮助,将不胜感激.谢谢.

编辑:看起来我的初始问题的一部分与其他地方干扰这个问题的js有关.接受的答案和略微修改的其他建议答案都有效.谢谢大家.

jquery tabs jquery-ui fragment-identifier

47
推荐指数
5
解决办法
6万
查看次数