jQuery / JavaScript: изменение URL-хэша с тега <input>или при отправке формы - PullRequest
4 голосов
/ 09 декабря 2010

возможно ли как-то повлиять на хеш URL из тега <input>?

Мне нужно начать поиск без обновления страницы, но я также хочу изменить хэш URL-адреса, например: search.html#query=hello%20world, когда я набрал hello world, в частности <input> и нажал Enter (или отправил).

UPD: у меня есть поиск AJAX, но я хочу, чтобы история работала и кнопки назад и вперед работали.

Итак, каждый раз, когда пользователь что-то ищет, я хочу, чтобы он оставался на той же странице, загружал результаты поиска через AJAX и изменял хеш URL страницы, чтобы включить кнопки истории.

Ответы [ 3 ]

1 голос
/ 09 декабря 2010

Да.

document.getElementById('search-form').onsubmit = function() {
    var hash = 'query=' + 
               encodeURIComponent(document.getElementById('query').value);

    window.location.hash = hash;
};

См. На jsFiddle .

1 голос
/ 09 декабря 2010

Используйте свойство window.location.hash, чтобы получить и установить хэш.

var e = document.getElementById('search');
window.location.hash = "#"+escape(e.value);
0 голосов
/ 09 декабря 2010

Поскольку вы делаете это асинхронно, я не могу точно сказать вам, как это сделать, но я предполагаю, что у вас есть какая-то функция поиска, в которой вы получаете значение input и выполняете поиск :

function your_search_function()
{
    var searchString = document.getElementById('your-input').val // get the value

    // do your search stuff...

    window.location.hash = 'query=' + encodeURIComponent(searchString);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...