2011-12-28 77 views
1

现在假设location.hrefhttp:/domain.com/en/哈希导航URL构造

点击后,我想这是http://domain.com/en/#opened-File.html/1

这样,我知道我需要什么网址,因此,如果一个用户复制和共享此URL我做:

$(document).ready(function(){ 
    var info = window.location.hash.match(/^#([^\/]*)\/([^-]*)-(.*)$/), 
     url="", nivel="", seccion=""; 
    if (info) { 
     url = info[1]; 
     nivel = info[3]; 
     seccion = info[2]; 
     location.href = url; 
    } 
} 

至极工作正常,但我的问题是:

  • 这是一个很好的方法吗?
  • 这是seo-frendly?
  • 你会这样做吗?

这与

$('nav a').each(function(){ 
     if(!$(this).hasClass('enlaceAnulado')){ 
     /*Recopilamos*/ 
      var href = $(this).attr('href'); 
      var id = $(this).attr('id'); 
      var parts = id.split("_"); 
      var seccion = parts[0]; 
      var nivel = parseInt(parts[1])+1; 
     /*Quitamos el enlace*/ 
      $(this).attr('href','javascript:void(0)'); 
     /*Guardamos la información.*/ 
      $(this).data('hrefnot',href); 
      $(this).data('nivel',nivel); 
      $(this).data('seccion',seccion); 
      $(this).addClass('enlaceAnulado'); 
     } 
    }); 

所以链接一起工作,其中静态的,但是我这样做是为了提高通过AJAX用户体验,并加载内容

+0

我建议编辑您的帖子。其中,我添加了一个缺少的'}'。由于代码“工作正常”,我在发布问题时假定这个错字处于隐藏状态。如果情况并非如此,请恢复编辑。 – PPvG 2011-12-28 15:30:26

+0

是这样,谢谢!!!! – 2011-12-28 15:37:06

回答

1

搜索引擎索引的网页内容,如果URL有没有任何后面的散列。散列导航仅供浏览器维护导航历史记录。您应该始终将您想要编入索引的内容设为静态。考虑这是对你所有三个问题的答案。

+0

已编辑的问题,以澄清我在做什么,也许有一个看看该网站将使更有意义:http://toniweb.us/gm – 2011-12-28 15:38:58

+0

你应该明白,用视觉转换改变内容不改善用户体验;坦率地说,它甚至经常被认为是刺激性的。因为在你的情况下,没有其他理由使内容变得动态,我认为唯一适当的选择是使其变为静态并提供诸如“/ en/about”,“/ en/gallery /”等链接 – 2011-12-28 16:37:19

+0

这不是真的我的电话...... :( – 2011-12-28 16:45:18

0

这是一个很好的方法吗?

我的第一个倾向是认为这是针对服务器端的一个好工作(PHP,Python和asp.net,阿帕奇重写等)

这是搜索引擎优化,员工共赢?

我会担心哈希,而是使用更好的网址实践。

你会这样做吗?

我宁愿让我的服务器解析(mod重写等)的Url而不是javascript。

0

我想添加以下尼基塔沃尔科夫的答案:

搜索爬虫一般不运行JavaScript代码(虽然谷歌是trying to change that)。这意味着使用JavaScript将用户重定向到一个静态页面,就像你在做什么:

location.href = url; 

...不会工作。

如果你想让网址的哈希标签更适合搜索引擎优化,你必须做到服务器端。

+0

但请注意,这将只发生在用户分享链接从他自己的导航的情况下,因为谷歌应阅读正常的URL – 2011-12-28 16:28:55

+0

啊,我没有看到你的编辑。 – PPvG 2011-12-28 16:54:08