Выполнить действие на основе идентификатора фрагмента в jQuery - PullRequest
1 голос
/ 17 апреля 2011

У меня на сайте есть модальное окно CSS, которое открывается нажатием на ссылку, которая выглядит следующим образом:

<a href="#modal-box">Click here to open modal box</a>

Как только пользователи нажали на это, открывается модальное окно, и они оказываются по адресу: http://example.com/#modal-box

Для меня это место на моем сайте, поэтому я хотел бы, чтобы пользователи могли скопировать и вставить этот URL-адрес в другой браузер и получить такой же модальный блок.

Используя jquery, есть ли способ захватить идентификатор фрагмента, на котором находится пользователь, и затем выполнить действие, основанное на этом?

Ответы [ 2 ]

3 голосов
/ 17 апреля 2011

Если вы хотите сделать это правильно (то есть поддержка кнопки назад), то вам нужно перехватить событие hashchange и действовать в соответствии с ним, это событие запускается современными браузерами при изменении фрагмента URL. Однако не все браузеры поддерживают hashchange, поэтому вам придется обойти это. Вам лучше использовать готовое решение, такое как:

Основной плагин hashchange, вероятно, является лучшим выбором, если вы не создаете приложение JavaScript со сложной маршрутизацией и обработкой аргументов.

Ты тоже можешь смотреть на location.hash. Но тогда вам нужно будет найти соответствующую ссылку и смоделировать щелчок по ней, чтобы заставить браузер работать. Как только вы начнете делать такие вещи, вам, вероятно, будет лучше с одним из вышеупомянутых плагинов / фреймворков и какой-то формальной системой маршрутизации.

2 голосов
/ 17 апреля 2011

Вы, вероятно, могли бы сделать это с помощью jQuery, но вы также можете просто использовать собственное свойство JavaScript: location.hash дает вам #modal-box.

...