我想在不牺牲SEO的情况下建立一个ajax网站。我的问题是: 如果我的页面上有这样的链接:
<a href="http://example.com/cats" id="cats">Cats</a>
<a href="http://example.com/dogs" id="dogs">Dogs</a>
...当点击每个链接时,我想用相应的主题标签更新地址栏。因此,如果单击“Cats”链接,则当前位置将为http://example.com/#cats,我可以使用它来显示我的ajax内容。如果javascript关闭或用户是搜索引擎,他们将直接转到/ cats
答案 0 :(得分:44)
您可以更改location.hash
属性,它会更改当前的锚点标识符,而无需从页面导航,例如您可以:
<a href="http://mysite.com/cats" id="cats" class="ajaxLink">Cats</a>
<a href="http://mysite.com/dogs" id="dogs" class="ajaxLink">Dogs</a>
然后:
$('.ajaxLink').click(function (e) {
location.hash = this.id; // get the clicked link id
e.preventDefault(); // cancel navigation
// get content with Ajax...
});
答案 1 :(得分:16)
如果表单中有感叹号,Google会对哈希进行索引:#!dogs
然后假设这些是面向AJAX的:
答案 2 :(得分:0)
出于安全原因,如果不在javascript中重新加载页面,则无法设置window.location.href。
据我所见,有些人说谷歌将索引#urls,但他们不会被视为单独的页面,我认为这不是你想要的。我对SEO的经验也很少。
答案 3 :(得分:0)
虽然简单性最好,但如果您只想自动执行此过程或使其具有通用性,那么您可以使用此精简插件jquery.hashTag.js
$('a').hashTag({
source: function() {
return $(this).attr('id');
}
});
只需将此代码段放在$(文档).ready。
中它将完成其余的工作。 就像自动点击其ID被提供为哈希的链接一样。
答案 4 :(得分:-1)
BenMills,没有人提到过location.href,它是关于location.hash的,它不需要重新加载页面。