不——如果你想使用 AJAX 进行深度链接,你必须让它以这种方式工作。锚点是 URL 中唯一可以在不重新加载页面的情况下更新的部分。它通常也不发送到服务器,因此它总是由浏览器处理。
您可以做的一件事是在a
标签中有实际链接,然后使用 jQuery 更新链接:
<a href="page1.html" class="ajaxLoad">Page 1</a>
<script>
$(function(){
$("a.ajaxLoad").each(function(){ this.href = '#' + this.href })
});
</script>
关闭 JavaScript 后,这将在用户单击链接时将其重定向到“page1.html”。否则,链接将更改为锚链接,您应该能够使用深度链接代码获取它。这样的好处是非 JavaScript 浏览器将能够正确使用链接(这包括搜索引擎蜘蛛)。
编辑:正如您所知,您可以做一些事情而不是使用 JavaScript 来更改它。例如,您可以附加到链接的点击处理程序并使用load
或其他东西来更改您要加载页面的区域。
$("a.ajaxLoad").click(function(e){
e.preventDefault();
$("#content").load(this.href + ' #content');
});