2011-12-28 115 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