2012-06-22 4 views
0

Я пытаюсь выполнить самую основную навигацию с помощью JQuery, и я терплю неудачу.JQuery навигация по сайту

У меня есть несколько файлов .html с различным контентом, но я хочу иметь постоянную страницу и загружать содержимое в div. То, как я есть навигация реализована на данный момент:

  1. пользователь щелкает NavLink1
  2. JQuery выполняет следующие действия:

    event.preventDefault()
    (# мой-контент-ДИВ). нагрузка (NavLink1-контент);

  3. URL-адрес теперь отображается как «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

Это единственный подход. Все остальное было бы храбрым и непринужденным. – iambriansreed

ответ

3

Если вы не возражаете, поддерживая только новые версии браузера, вы могли бы использовать HTML5 функции управления историей - pushState быть конкретными, что позволяет вам измените URL-адрес на yourdomain.com/NavLink1, не перезагружая страницу, что позволит вам сделать то же самое, но сохранить неповрежденные URL.

Если у вас есть do mind old browser, вы можете использовать History.js, который решает проблемы совместимости с другими браузерами. В новых браузерах он будет использовать функции HTML5, а в более старых версиях он вернется к изменениям хэша.

+0

К сожалению, я ожидаю старых браузеров. Это, случается, свадебный сайт с включенным RSVP, поэтому я, вероятно, должен поддерживать IE. –

+0

@Chad_C: Мое решение * * поддерживает IE - часть истории History.js. Если бы этот ответ был полезен для вас, пожалуйста, примите его как правильный ответ, чтобы этот вопрос мог быть отмечен как разрешенный. Благодаря! –

+0

К сожалению, проблема не устранена - включен History.js, и я следил за запутанной документацией. Я даже попытался удалить hashbang и использовать обычные ссылки, такие как/home,/navlink1 и т. Д., И они просто возвращают 404. Я все еще пытаюсь исследовать правильное решение, которое также будет поддерживать обновления. –

Смежные вопросы