2012-06-22 95 views
0

我試圖執行的jQuery最基本的導航,我沒有草草收場。JQuery的網站導航

我有不同內容的多個.html文件,但我希望有一個持久的頁面和內容加載到一個div。我目前所面對的實現導航的方式:

  1. 用戶點擊NavLink1
  2. JQuery的執行:

    event.preventDefault()
    (#我的內容-DIV)。負載(NavLink1含量);

  3. 網址現在顯示爲「www.mydomain.com/#NavLink1」。
我在世界上如何實現直接鏈接到#NavLink1,和/或,而用戶瀏覽www.mydomain.com/NavLink1和內容加載正確實施的系統?

一個導航鏈接我的導航代碼:

$("#story-button-link").click(function(event){ 
     $(this).addClass("selected"); 
     $("#landing-page-article").load('./story.html', function() { 
      $(document).ready(function() { 
      }); 
     }); 
     return false; 
    }); 
+1

你在找什麼是服務器端的URL重寫 - *易*在Apache中,crapshoot在IIS。 – iambriansreed

+0

我有權訪問.htaccess,那麼這是我應該採取的方法嗎?現在它只包含我在CORS的徒勞嘗試(我認爲我的主持人很謙虛,並不真正支持它)。 –

+1

這是唯一的方法。其他任何東西都會是hacky和非xbrowser友好的。 – iambriansreed

回答

3

如果你不介意的話僅支持較新版本的瀏覽器,你可以使用HTML5歷史管理功能 - pushState是具體的,它允許你在不重新加載頁面的同時將URL更改爲yourdomain.com/NavLink1,這樣您可以完成相同的操作,但保持URL不變。

如果你介意舊版瀏覽器,你可以使用History.js,它可以解決跨瀏覽器兼容性問題。在較新的瀏覽器中,它將使用HTML5功能,而在較早的版本中,它將恢復爲散列更改。

+0

不幸的是,我期待着更舊的瀏覽器。這恰好是一個包含RSVP的婚禮網站,所以我應該支持IE。 –

+0

@Chad_C:我的解決方案*支持IE - 關於History.js的部分。如果這個答案對你有幫助,請接受它作爲正確的答案,這樣這個問題可以被標記爲已解決。謝謝! –

+0

不幸的是問題仍然存在 - History.js包含在內,我已經跟蹤了令人困惑的文檔。我甚至嘗試刪除hashbang,並使用常規鏈接,如/ home,/ navlink1等,他們只是返回一個404。我仍然試圖研究也將支持刷新的正確解決方案。 –