Vadiok
5/11/2016 - 1:45 PM

Функции для работы с Get параметрами

Функции для работы с Get параметрами

// Возвращает значение get папраметра или 'undefined' в случае его отсутствия
function getQueryParam(key) {
	function escapeRegExp(str) {
		return str.replace(/[\-\[\]\/{}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
	}
	var s = window.location.search;
	s = s.match(new RegExp('[?&]' + escapeRegExp(key) + '=([^&=]+)'));
	return s ? s[1] : undefined;
}

// Устанавливает значение get папраметра через history API (без перехода и изменения страницы)
function setQueryParam(key, val) {
	function setNewUrl(getString) {
		history.pushState({}, '', window.location.pathname + getString);
	}
	function escapeRegExp(str) {
		return str.replace(/[\-\[\]\/{}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
	}
	if (!window.location.search.length || (window.location.search.length === 1)) return setNewUrl('?' + key + '=' + val);
	var currentKeyValue = getQueryParam(key);
	if (typeof currentKeyValue === 'undefined') return setNewUrl('&' + key + '=' + val);
	var s = window.location.search;
	s = s.replace(new RegExp('([?&])'+escapeRegExp(key)+'=[^&=]+'),'$1'+key+'='+val);
	return setNewUrl(s);
}