Дополнительно
Как можно проверить наличие #hash в URL с помощью JavaScript?
У меня есть некоторый код jQuery/JavaScript, который я хочу запускать только в том случае, если в URL есть хэш (#
) анкорной ссылки. Как можно проверить наличие этого символа с помощью JavaScript? Мне нужен простой универсальный тест, который бы обнаруживал такие URL:
example.com/page.html#anchor
example.com/page.html#anotheranchor
В общем, что-то вроде:
if (thereIsAHashInTheUrl) {
do this;
} else {
do this;
}
Если кто-нибудь может указать мне правильное направление, буду очень признателен.
753
18
Просто:
Поставьте следующее:
Если URI не является документом'ы расположение этого фрагмента будет делать то, что вы хотите.
Пробовали ли вы это?
``javascript if (url.indexOf('#') !== -1) { // Url содержит символ # }
Это позволит решить проблему ;)
возвращает хэш-идентификатор
...или там'ы селектор jQuery:
Здесь's то, что вы можете сделать, чтобы периодически проверять изменения хэш, а затем вызвать функцию для обработки хэш-значение.
Большинство людей осведомлены о свойствах URL-адресов в документе.расположение. Что'здорово, если вы'повторно заинтересованы только в текущем разделе. Но вопрос был про возможность анализировать анкоры на страницу и самой страницы.
Что большинство людей, кажется, не заметить, что те же свойства URL-адреса также доступны для привязки элементов:
Партридж и выше комментарии Gareths велики. Они заслуживают отдельного ответа. Видимо, хэш и поиск недвижимости доступны в любой объект HTML ссылка:
Или
Если вам нужно это на регулярной строковая переменная и есть в jQuery вокруг, это должно работать:
(но его, возможно, немного перестарались .. )
Привожу это здесь, как способ абстрагирования объектов от произвольного Ури-как струны. Хотя окно.место расположения оператора instanceof-это верно, любые попытки ссылаться на "местоположение" скажет вам, что это'с незаконным конструктор. Вы все еще можете получить вещи, как
хэш
,запрос
,протокол
и т. д., установив строку какслишком
свойство анкерный элемент DOM, который потом будет делиться все адреса свойства с помощью окна.местоположение.Простой способ сделать это:
Для удобства я написал небольшую библиотеку, которая использует это, чтобы заменить конструктор родной
местоположение
с одним, что строки и производить окна.местоположение объектов: Location.jsОбычно клики идут прежде, чем изменения местоположения, так что после щелчка является хорошей идеей в setTimeout чтобы получить обновленные окна.расположение.хэш
или вы можете слушать расположением:
Я написал плагин jQuery, что делает что-то вроде что вы хотите сделать.
Это'ы простой якорь маршрутизатор.
Вот простая функция, которая возвращает значение
true
илиfalse
(имеет / не'т иметь хэштег):Возвращает
true
в этом случае.На основе @Джон Скит'ы комментарий.
Это простой способ, чтобы проверить это на текущем URL-адрес страницы:
<п>иногда вы получаете полную строку запроса, такие как "#anchorlink?имя=отметки"</п> <п>это мой скрипт, чтобы получить хэш-значение:</п>
в <предварительно><код>ВАР hashId = окно.расположение.хэш; hashId = hashId.матч(/#[^?&\/]*/г);
возвращает -> #anchorlink </код></пре>