JavaScript: Получение GET параметров страницы

Мир не стоит на месте. Приложения разрабатываются, и становятся только сложнее. И если раньше мало кто задавался вопросом, как получить GET параметры страницы в JavaScript, то сегодня этот вопрос всплывает все чаще и чаще. Именно об этом я и хочу сегодня рассказать.

Для того что бы получить значения GET или POST запроса в JavaScript можно воспользоваться серверной прослойкой вида

<script>
var REQUEST = <?php echo json_encode($_REQUEST, true); ?>;
</script>

Данный метод вполне работоспособен, однако создает на Вашем сайте глобальную переменную со всеми данными запроса. А значит, скорее всего, вы передаете юзеру на хранение кучу ненужного мусора.

Когда речь идет только о необходимости получения доступа только к GET параметрам, я предпочитаю получать их налету из текущей ссылки юзера. А в этом нам может помочь вот такая небольшая функция:

function getParameterByName(name, url) {
	if (!url) url = window.location.href;
	name = name.replace(/[\[\]]/g, "\\$&");
	var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
		results = regex.exec(url);
	if (!results) return null;
	if (!results[2]) return '';
	return decodeURIComponent(results[2].replace(/\+/g, " "));
}

Данный скрипт ищет с помощью регулярного выражения вхождение нужного параметра в строке ссылки, и в случае нахождения такого, возвращает символы, стоящие после символа ‘=’.

Пример использования

alert( getParameterByName('page') ); //получение GET параметра page текущей страницы

alert( getParameterByName('page'), 'http://somepage.com/?item=1&page=10' ); //получение GET параметра page указанной страницы
Запись опубликована в рубрике JavaScript с метками , , , , , , , . Добавьте в закладки постоянную ссылку.