【发布时间】:2009-11-11 18:35:31
【问题描述】:
你们都知道如何使用 300 毫秒触发器来构建 AJAX 站点,以检查 URL 中的锚点(哈希链接),然后使用 AJAX 加载正确的页面。但是,这些锚链接对搜索引擎来说毫无意义 =(
我想过做一些解决方法。所有的 JS 代码都保持不变,但是,这个小东西(我用的是 JQuery,对不起):
$('a').live("click",function(){
var lnk = $(this).attr("href");
document.location.hash = lnk;
return false;
})
然后,您将正文中的锚链接替换为普通链接,为非 JavaScript 用户和搜索引擎构建相应的普通页面(仍然包含所有 JS 代码)。对于普通访问者,您可以将普通链接即时转换为哈希值并立即加载 AJAX 内容。对于那些试图加载通过搜索引擎找到的某些页面的人 - 他们会,之后访问者将继续使用 ajax 导航...不知何故(请记住,那些普通的直接页面仍然包含 JS 代码)。
我只是想确保我的假设是正确的。是吗?
更新: 不好的是,当用户使用 for ex 直接进入一些内部页面时。 /portfolio 地址,然后他会继续访问 /portfolio#contacts 或类似的 URL,这些 URL 不是很漂亮,但仍然有效(我的意思是 /portfolio#contacts 将显示联系人)。
【问题讨论】:
标签: javascript ajax seo graceful-degradation hashchange