Как извлечь строку запроса из URL в JavaScript?
Спасибо!
Вы можете легко создать коллекцию словарных стилей ...
function getQueryStrings() {
var assoc = {};
var decode = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); };
var queryString = location.search.substring(1);
var keyValues = queryString.split('&');
for(var i in keyValues) {
var key = keyValues[i].split('=');
if (key.length > 1) {
assoc[decode(key[0])] = decode(key[1]);
}
}
return assoc;
}
И использовать ее вот так ...
var qs = getQueryStrings();
var myParam = qs["myParam"];
Если вы имеете в виду URL в адресной строке, то
window.location.search
даст вам только часть строки запроса. Обратите внимание, что она включает вопросительный знак в начале.
Если вы ссылаетесь на произвольный URL, хранящийся в (например) строке, вы можете получить строку запроса, взяв подстроку, начинающуюся с индекса первого вопросительного знака, сделав что-то вроде:
url.substring(url.indexOf("?"))
Это предполагает, что все вопросительные знаки в части фрагмента URL были правильно закодированы. Если в конце есть цель (т.е. #, за которым следует идентификатор DOM-элемента), она также будет включена.