Если вы используете jQuery, вы можете использовать библиотеку, такую как jQuery BBQ: Back Button & amp; Query Library .
... jQuery BBQ предоставляет полный метод
.deparam()
наряду с управлением состоянием хеш-хэшей и фрагментами / строками запроса и слиянием строк / запросов.Редактирование: добавление Deparam Пример:
var DeparamExample = function() { var params = $.deparam.querystring(); //nameofparam is the name of a param from url //code below will get param if ajax refresh with hash if (typeof params.nameofparam == 'undefined') { params = jQuery.deparam.fragment(window.location.href); } if (typeof params.nameofparam != 'undefined') { var paramValue = params.nameofparam.toString(); } };
Если вы хотите просто использовать обычный JavaScript, вы можете использовать ...
var getParamValue = (function() { var params; var resetParams = function() { var query = window.location.search; var regex = /[?&;](.+?)=([^&;]+)/g; var match; params = {}; if (query) { while (match = regex.exec(query)) { params[match[1]] = decodeURIComponent(match[2]); } } }; window.addEventListener && window.addEventListener('popstate', resetParams); resetParams(); return function(param) { return params.hasOwnProperty(param) ? params[param] : null; } })();
Из-за нового API истории HTML и, в частности,
history.pushState()
иhistory.replaceState()
, URL-адрес может быть изменен, что приведет к аннулированию кеша параметров и их значений.Эта версия будет обновлять свой внутренний кеш параметров при каждом изменении истории.