2012-06-22 65 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。我仍然试图研究也将支持刷新的正确解决方案。 –