2011-01-25 58 views
0

海蘭,jQuery的URL操作

我有菜單是這樣的:

<a href=home>Home</a> 
- <a href=home/sub1>Home Sub 1</a> 
- <a href=home/sub2>Home Sub 2</a> 
- <a href=home/sub3>Home Sub 3</a> 

<a href=garden>Garden</a> 
- <a href=garden/sub1>Garden Sub 1</a> 
- <a href=garden/sub2>Garden Sub 2</a> 
- <a href=garden/sub3>Garden Sub 3</a> 

現在我設置鏈接網址:

$.address.init(function(event) { 

$('a').address(function() {return $(this).attr('href').replace(location.pathname, '');});}).change(function(event) { 

    var text = (event.value == '') ? 'Home' : 
    event.pathNames[0].substr(0, 1).toUpperCase() + 
    event.pathNames[0].substr(1); 
    $('a').each(function() { 
    $(this).toggleClass('selected', $(this).text() == text); 
    }); 
}) 

所以,如果我點擊 「首頁」 我的網址 - > www.web.com/#/home和home sub 1 - > www.web.com/#/home/sub1。

  1. 如何替換不需要的「/#/」?
  2. 我如何閱讀實際的網址,如果它符合如:www.web.com/garden/sub1採取一些行動? 我想使用這個,所以如果有人通過特定的鏈接來到我的網站,實際的導航點應該是打開的。

THX

回答

0

您可以使用 window.location.href屬性,但 這將觸發頁面重載與 JavaScript操作的URL;幸運的是你可以使用 window.location.hash屬性。 散列屬性用於片段 標識符,它是 散列字符(#)後面的URL的可選 組件。 後面的字符串不是發送到服務器的哈希字符是 ;因此, 瀏覽器負責通過客戶端腳本恢復狀態 ,並且 檢索相應的視圖。 因爲他們像正常的鏈接, 但一個頁面內,沒有 頁面重載時,瀏覽器的行爲 彷彿你點擊一個標準 鏈接,添加網址的 訪問過的URL列表。這也使 歷史導航,書籤和 與其他人共享URL。

來源:http://blogs.southworks.net/jdominguez/2010/02/the-single-page-interface-pattern/