我在现有网页中实现了ajax -html5.js。它使用jQuery、ScrollTo和History.js。好东西,效果很好。每个像
这样的链接<a href="category?id=5">Category 5</a>
在内容窗口中打开,就像它应该的那样。当我点击一个使用碎片标识符的链接时,整个事情离完美只有一个问题:
<a href="category?id=5#pictures">Category 5 - directly to pics</a>
…地址栏内的URL会像它应该的那样改变,但内容不会发生任何变化。甚至连类别都没有?Id =5被加载
据我所知,这被触发(从ajax -html5.js):
History.pushState(null,title,url); // url = "category?id=5#pictures"
但是statechange没有(来自同一个文件):
$window.bind('statechange',function(){
我想我可以消毒每个url(删除#hashtag),然后一切都会工作…当然,除了获得新加载的页面定位在<a name="hashtag"></a>
的位置。不幸的是,网站严重依赖这些…
我的问题是:甚至可以使用ajax和碎片标识符一起使用,后者不受第一个影响?
您可以存储所有<带有内部href的标签,像这样:>var tags = jQuery("a[href*='#']");
在afaxify-html5.js完成它的魔力之后,你可以通过调用tags.unbind()
来恢复原来的行为。