我们现在说location.href
为http:/domain.com/en/
。
点击后我希望它为http://domain.com/en/#opened-File.html/1
这样我知道我需要什么URL,所以如果用户复制并共享我正在做的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;
}
}
哪个好,但我的问题是:
这与
一起使用$('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 :(得分:1)
搜索引擎会对您的网页内容编制索引,就好像该网址没有任何内容符合哈希值。散列导航仅用于浏览器维护导航历史记录。您应始终将要编入索引的内容静态化。将此视为对您的所有三个问题的回答。
答案 1 :(得分:0)
这是一个好方法吗?
我的第一个倾向是认为这对服务器端来说是一个很好的工作(php,python,asp.net,apache重写等)。
这是个热情的吗?
我会担心哈希值,而是使用更好的Url做法。
你会以不同的方式做到吗?
我宁愿让我的服务器解析(mod重写等)Url而不是javascript。
答案 2 :(得分:0)
我想在Nikita Volkov的回答中添加以下内容:
搜索抓取工具通常不会运行JavaScript代码(尽管Google是trying to change that)。这意味着使用JavaScript将用户重定向到静态页面,就像您正在使用的那样:
location.href = url;
......不会起作用。
如果你想使用散列标签制作更具SEO性能的URL,你必须在服务器端进行。