Вытащить параметры из адресной строки (URL): различия между версиями
Перейти к навигации
Перейти к поиску
Misha (обсуждение | вклад) (Новая страница: «Взято [http://dimation.ru/jquery/499-get-url-parameters-and-values-using-jquery тут]<br /> Недавно, во время работы на одном и…») |
Misha (обсуждение | вклад) |
||
Строка 26: | Строка 26: | ||
<pre> | <pre> | ||
http://www.example.com/?me=myValue&name2=SomeOtherValue | http://www.example.com/?me=myValue&name2=SomeOtherValue | ||
− | </pre | + | </pre> |
Вызов функции getUrlVars() вернет вам следующий массив: | Вызов функции getUrlVars() вернет вам следующий массив: | ||
<pre> | <pre> |
Текущая версия на 10:18, 14 декабря 2015
Взято тут
Недавно, во время работы на одном из моих проектов, я должен был получить значения параметров из URL строки на текущей странице, которая была построена и присланна сценарием PHP.
// Считывает GET переменные из URL страницы и возвращает их как ассоциативный массив. function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; }
Функцию getUrlVars() можно записать с использованием регулярных выражений:
function getUrlVars() { return window.location.href.slice(window.location.href.indexOf('?')).split(/[&?]{1}[\w\d]+=/); }
Функция возвращает массив / объект с URL параметров и их значений. Для примера рассмотрим URL:
http://www.example.com/?me=myValue&name2=SomeOtherValue
Вызов функции getUrlVars() вернет вам следующий массив:
{ "me" : "myValue", "name2" : "SomeOtherValue" }
Чтобы получить значение первого параметра вы должны сделать следующее:
var first = getUrlVars()["me"]; // Для получения второго параметра var second = getUrlVars()["name2"];
Для того, чтобы синтаксис сценария был более похож на код JQuery я переписал его как расширение для JQuery:
$.extend({ getUrlVars: function(){ var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; }, getUrlVar: function(name){ return $.getUrlVars()[name]; } });
Теперь, если вы добавить выше предоставленный код в файл JavaScript, вы можете получить URL значения параметров в следующем виде:
//Получить объект с URL параметрами var allVars = $.getUrlVars(); // Получит параметр URL по его имени var byName = $.getUrlVar('name');