Здесь много хороших решений, но я решил опубликовать свое собственное. Вот небольшая функция, которую я собрал вместе, которая будет анализировать строку запроса в формате либо из window.location.search, либо из предоставленного значения строки поиска;
Он возвращает хэш пар значений идентификаторов, чтобы вы могли сослаться на него в виде:
var values = getQueryParams();
values['id']
values['blah']
Вот код:
/*
This function assumes that the query string provided will
contain a ? character before the query string itself.
It will not work if the ? is not present.
In addition, sites which don't use ? to delimit the start of the query string
(ie. Google) won't work properly with this script.
*/
function getQueryParams( val ) {
//Use the window.location.search if we don't have a val.
var query = val || window.location.search;
query = query.split('?')[1]
var pairs = query.split('&');
var retval = {};
var check = [];
for( var i = 0; i < pairs.length; i++ ) {
check = pairs[i].split('=');
retval[decodeURIComponent(check[0])] = decodeURIComponent(check[1]);
}
return retval;
}
Чтобы получить значение строки запроса из URL-адреса без разбора строки, вы можете сделать:
window.location.search.substr(1)
Если вы хотите, чтобы имя страницы перед ? вам все еще нужно сделать небольшой разбор строки:
var path = window.location.pathname.replace(/^.*\/(.*)$/,'$1');
var query = path + window.location.search;
//If your URL is http://www.myserver.com/some/long/path/big_long%20file.php?some=file&equals=me
//you will get: big_long%20file.php?some=file&equals=me
Надеюсь это поможет! Ваше здоровье.
person
coderjoe
schedule
31.07.2009