JQuery скрипт для работы с GET-параметрами на фреймворке Webasyst. Скрипт позволяет добавлять GET без перезагрузки страницы после отправки любой формы. Ниже можно посмотреть демо данного решения.
<script>
// Получение гетов
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;
}
// Установка гетов
function setUrlVars(type, value) {
if (!value) {
return false;
}
var params = [];
// получение массива данных
if (typeof value == 'object') {
$.each(value, function (key, val) {
params.push(val.name + '=' + val.value);
});
} else
if (getUrlVars()[type] && value != null) {
params.push(type + '=' + value);
} else {
params.push(type + '=' + value);
}
for (var i = 0; i < getUrlVars().length; i++) {
if (getUrlVars()[i] != type && getUrlVars()[getUrlVars()[i]] !== undefined) {
params.push(getUrlVars()[i] + '=' + getUrlVars()[getUrlVars()[i]]);
}
}
var url = '?' + params.join("&");
if (!!(history.pushState && history.state !== undefined)) {
window.history.pushState({}, '', url);
}
}
// Пример использования при клике на кнопку
$('body').on('submit', 'form', function () {
var form_data = $(this).serializeArray();
setUrlVars(null, form_data);
return false;
});
</script>
<form>
<input type="text" name="text" value="text in url" />
<input type="submit" name="button" value="Test submit">
</form>
Демо работы скрипта

