Система для обработки хэш-бирков для содержимого вкладок? (! #)

StackOverflow https://stackoverflow.com/questions/3963818

Вопрос

У меня есть четыре страницы на главной части сайта, над которым я работаю, с вкладками переключаться между ними. Я хочу переключение между 4 вкладками быть исчезновенным переходом (используя jQuery). Это все хорошо и денди, но я также хочу SEO думать о каждой как отдельной странице. Я также хочу иметь возможность ссылаться на URL-адрес и для этого поднять правильный контент, хотя оно технически такая же страница.

Facebook делает это (Facebook.com/#!/Another-string-hate), и вы можете переключаться между изображениями и так далее, так что это втул, как javaScript QueryString.

Это позволяет немедленно переключаться, возможность ссылки на него и все же каждый действует как собственная страница.

Есть ли рекомендуемый метод для того, как это сделать?


Обновить лучшее, что я нашел, это Sammyjs - не реализован, но он выглядит лучшим ответом:http://sammyjs.org/

Это было полезно?

Решение

Допустим, у вас есть базовая страница, называемая services, И эта страница имеет две вкладки: design а также development (просто для упрощения). Так что если ваш домен был example.com, Ваш хэш URL, нажав на вкладку «Дизайн», будет выглядеть что-то вроде http://example.com/services#!/design, и похоже на развитие. Я предполагаю, что вы знаете, как это сделать.

Чтобы поисковые системы распознают вкладки, что вы делаете Сделайте статическую версию каждой страницы. Отказ Так что у вас будет один на http://example.com/services/design и один http://example.com/services/development. Отказ То href Атрибут каждой вкладки фактически указывает на эти статические страницы, но вы прикрепите обработчик OnClick к каждой вкладке, чтобы заставить его перейти в версию HASH.

Таким образом, клиенты с поддержкой JavaScript получит вашу страницу AJAXY с помощью своей страницы с помощью хеш-меток и эффектами выцветания, в то время как клиенты без JavaScript включены (включая веб-скалы), увидят нормальные, статические ссылки, и все выигрывают.


Для записи это похоже на то, что делает Facebook. Они выходят на шаг дальше и используют новый HTML5 history.pushState() Функция в браузерах, которые поддерживают его, чтобы исключить потребность в хеш-теге целиком. (Видеть этот вопрос для получения дополнительной информации.)

Другие советы

Ну, чтобы иметь это оба пути невозможны (метод Facebook и SEO), поскольку сервер не отправляет хеш-тег, а большинство поисковых систем (Google и т. Д.) Не запускают JavaScript.

Теперь, если вы просто хотите эффект затухания, вы можете настроить его так, чтобы если есть хеш-тег в URL, например, #fade, jQuery установит непрозрачность на 0, ждать нагрузки и исчезнуть. Чтобы получить исчезновение вы устанавливаете слушателей событий на ссылках, e.preventDefault() или return false В этой функции и исчезают непрозрачность. Как только это сделано исчезновение, у вас будет изменение JavaScript на новую страницу location.href="site" с хэшем #fade

Редактировать: пример: http://fiddle.jshell.net/msm595/u5eg2/3/show/light/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top