我一直在使用jQuery地址插件来启用后台按钮支持,除了链接在AJAX内容区域之外,它一直在工作。例如
<div id="content">
<a href="example.html" rel="address:example.html" onclick="ajaxLoad(this);">link</a>
</div>
其中ajaxLoad用content
的内容替换example.html
。当我尝试这样做时,地址栏不会改变,后退按钮只会转到内容区域之外的链接的最后一个实例。
有没有办法让这项工作?
修改
插件:http://www.asual.com/jquery/address/
示例ajaxLoad函数:
function ajaxLoad(obj)
{
$.get(obj, function(data)
{
$("#main").html(data);
});
return false;
}
答案 0 :(得分:0)
我使用上下文相关的window.location解决了这个问题。
修改了ajaxLoad:
function ajaxLoad(obj, inline)
{
if(!inline)
window.location='#/'+obj.rel.substring(8);
else
{
$.get(obj, function(data)
{
$("#main").html(data);
});
}
return false;
}
然后是初始页面加载的处理程序,以及使用后退/前进按钮的时间:
$.address.externalChange(function(event)
{
var url = event.value.substring(1); //strips the leading slash
if(url == "")
url = 'index.php';
loadPage(url, true);
});
我不知道这是否是最好的方法,但它确实有用。