Использование фрагмента URL для определения, какая функция jquery запущена

0

Я хочу ссылаться на страницу типа (domain.com/page#loadThickBox1) и запускать функцию jquery, которая по умолчанию загружает толщину. Какой код мне нужно выполнить для выполнения этого?

Например, это могут быть несколько ссылок:

domain.com/page#loadThickBox1

domain.com/page#loadThickBox2

domain.com/page#loadThickBox3

Не так:

domain.com/page/loadThickBox1

domain.com/page/loadThickBox2

domain.com/page/loadThickBox3

  • 0
    Что вы пробовали? Что не так с другим вопросом (точно таким же), который вы задали?
  • 0
    В настоящее время я открываю толстые коробки с помощью функции onclick с помощью кнопки. Я хочу (кроме того) иметь возможность открывать их по умолчанию при загрузке страницы. Я закрыл свой последний вопрос, потому что люди думали, что я пытаюсь что-то делать с pushstate, а я нет.
Показать ещё 2 комментария
Теги:
fragment

3 ответа

1
Лучший ответ

Использовать location.hash

$(function() {
    switch( location.hash.replace('#','') ){
    case 'loadThickBox1':
        //do something!
        loadThickBox1();
        break;
    case 'loadThickBox2':
        //do something!
        loadThickBox2();
        break;
    case 'loadThickBox3':
        //do something!
        loadThickBox3();
        break;
    }
});
0

Вы можете прослушать событие hashchange, проанализировать хэш и выполнить свою функцию соответственно.

DEMO

function handleHash(hash) {
    var hash = hash.replace('#', '');

    if (!hash) return;

    console.log('Loading thick box ' + hash.slice(-1));
}

window.addEventListener('hashchange', function () {
    handleHash(location.hash);
});

//handle initial hash when page loads
handleHash(location.hash);
0
location.href.split('#')[1]

Это даст вам слова после #. Загрузите соответствующее поле с учетом этого значения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню