Мир не стоит на месте. Приложения разрабатываются, и становятся только сложнее. И если раньше мало кто задавался вопросом, как получить 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(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( url ); if( results == null ) return ""; else return decodeURIComponent(results[1].replace(/\+/g, " ")); }
Данный скрипт ищет с помощью регулярного выражения вхождение нужного параметра в строке ссылки, и в случае нахождения такого, возвращает символы, стоящие после символа ‘=’.
Пример использования
alert( getParameterByName('page') ); //получение GET параметра page текущей страницы alert( getParameterByName('page'), 'http://somepage.com/?item=1&page=10' ); //получение GET параметра page указанной страницы