我正在使用一个网站,其中所有内容都使用 jquery 通过 ajax 回发呈现。我正在使用 Ben Alman 的 hashchange ( http://benalman.com/projects/jquery-hashchange-plugin/ ) 来管理允许我为页面添加书签、使用后退按钮等的哈希历史...当然是 IE 9。在 IE 中,“已访问”链接没有被标记为已访问存在一个小问题。您可以看到在加载新内容之前单击链接后,链接会变成紫色(已访问)一瞬间。但是,一旦您单击后退按钮,链接就会出现,就好像它从未被访问过一样。这是我正在谈论的一个 jfiddle 示例:http: //jsfiddle.net/7nj3x/3/
这是 jsfiddle 代码,假设您有 jquery 和 head 中引用的 hashchange 插件:
$(function(){
// Bind an event to window.onhashchange that, when the hash changes, gets the
// hash and adds the class "selected" to any matching nav link.
$(window).hashchange( function(){
alert("Hash changed to:"+location.hash);
var hash = location.hash;
// Set the page title based on the hash.
document.title = 'The hash is ' + ( hash.replace( /^#/, '' ) || 'blank' ) + '.';
//simulate body being rendered by ajax callback
if(hash == ""){
$("body").html("<p id='nav'><a href='#test1'>test 1</a> <a href='#test2'>test 2</a> <a href='#test3'>test 3</a></p>");
}
else{
$("body").html("Right click within this pane and select \"Back\".");
}
})
// Since the event is only triggered when the hash changes, we need to trigger
// the event now, to handle the hash the page may have loaded with.
$(window).hashchange();
});