我一直在考虑SEO,ajax和链接。在查看来自不同网页的代码以及他们似乎如何处理这个问题时,我感到困惑。
我一直确保为进行ajax调用的函数存在静态上下文。我没有放置javascript内联我的标记,但我宁愿使用id来调用外部js文件的函数。我自己的典型例子如下:
<a href="/resource?take=10" id="next-ten">Link</a>
然后用点击功能连接id。
但我在一些主要页面上看到的是他们使用的东西:
<a href="#" onclick="ajaxCall();">Link</a>
<a href="javascript:void(0)" onclick="ajaxCall()">Link</a>
使用上面的javascript内联有什么好处吗?我不明白,主要网站似乎正在使用它?
答案 0 :(得分:2)
第二种方式很糟糕,因为不使用javascript的抓取工具无法使用第二种方法。
如果不使用javascript,第一种方法仍然可以使用。
只要你的链接被正确命名并且上下文合适,并且在没有启用javascript的情况下AND行为正确,你应该100%正常。
虽然有些抓取工具确实使用了javascript,但即使第二种变体很差,它仍然可能有效。
tl; dr:如果没有javascript就可以运行,那就很好。
答案 1 :(得分:0)
在HTML部分上写这样:
<a href="/resource?take=10" onclick="return ajaxCall()">Link</a>
在JavaScript部分,请这样写:
function ajaxCall() {
// AJAX functionalities will go here
return false;
}
搜索引擎会为网址编制索引,因为抓取工具抓取页面时不会执行JavaScript代码。但是当用户使用浏览器浏览此页面时,将执行JavaScript代码(假设用户未禁用JavaScript),并且将调用ajaxCall
函数。
注意:当函数返回
false
时,用户将无法导航到href
部分中定义的网址。但如果它返回true
或void
,则用户将被导航到定义的位置。