恐怕这可能是不可能的,但有没有办法改变一个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 …javascript jquery browser-history fragment-identifier browser-state
我在用:
$(window).bind( 'hashchange', function(e) { });
将函数绑定到散列更改事件.这似乎适用于IE8,Firefox和Chrome,但不适用于Safari,我认为不是早期版本的IE.对于这些浏览器,我想禁用使用哈希和hashchange事件的JavaScript代码.  
如果浏览器支持该hashchange事件,我可以检测到jQuery的方法吗?也许是jQuery.support......
如何使用AJAX"书签"页面或内容?
如果我们只是将细节添加到"锚点",然后使用路由甚至在PHP代码或Ruby on Rails的route.rb中捕获该部分,然后显示内容或页面,看起来很容易因此?(显示整页或部分内容)
那么它可以很简单吗?看起来这就是facebook的做法.有什么其他好办法吗?
我正在使用jQuery BBQ:后退按钮和查询库插件来创建一个页面,该页面在单击链接时会提取动态内容.单击链接时,将更改哈希并引入新内容(因此禁用单击href的"默认"操作.)
那部分工作正常,但有一个问题.
假设"主页"页面中有一些DIV,其中有一些链接列表......
图像可能需要一段时间才能加载,同时用户通常不会等待它们完全加载并单击"Page One"链接.
这将清除"主页"页面的内容并加载到"页面一"内容中.这很好.
问题是即使用户已经从"主页"页面移动,来自"主页"页面的图像仍然在浏览器中加载.
我知道这是发生的,因为页面实际上没有改变,我正在使用BBQ插件的hashchange hack但是我想知道是否有一种方法可以告诉JavaScript当前加载的所有图像停止在hashchange事件上?
$(window).bind('hashchange', function () {
    //code to stop images from loading
    // now load in new HTML content
});
javascript jquery fragment-identifier hashchange browser-state
是否有可能从浏览器获取所有过去的ajax调用的历史记录?
如果没有,是否有任何ffx插件或类似的将以与普通浏览器历史记录类似的方式存储您的所有ajax请求?
<script type="text/javascript>
var x = 0; //this occurs in the beginning of the page.
$("#button").onclick{
x = 1;
}
</script>
假设变量"x"变为1.然后用户单击链接.当用户点击"返回"时,x是0还是1?
Facebook正在使用Ajax历史记录(后退和前进按钮)和书签#!而不是仅使用#URL.这样做总是一个好主意,因为我认为通常的锚可能会干扰Ajax历史机制以触发它处理普通锚.
因此,Ajax History函数仅在它看到#!而不是仅仅处理散列部分时才会处理散列部分#.
并使用!与主流浏览器兼容?如果Facebook正在使用!,猜测它可能得到相当好的支持.
对我来说,它现在看起来是最成熟的解决方案(如果我错了,请纠正我).我非常喜欢这个用浏览器哈希操纵的插件.在某些情况下,它简化了js代码.
我真的想开始广泛使用它,但我有一个问题要问你.
因此,它使用循环并检查散列锚是否每50毫秒更改一次.
性能怎么样?我可以过度使用hashchange吗?它会导致性能显着下降吗?如果是这样的话?