Как получить строку запроса JavaScript?

Как извлечь строку запроса из URL в JavaScript?

Спасибо!

30
задан Kees C. Bakker 23 December 2011 в 10:13
поделиться

2 ответа

Вы можете легко создать коллекцию словарных стилей ...

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"]; 
49
ответ дан 27 November 2019 в 23:12
поделиться

Если вы имеете в виду URL в адресной строке, то

window.location.search

даст вам только часть строки запроса. Обратите внимание, что она включает вопросительный знак в начале.

Если вы ссылаетесь на произвольный URL, хранящийся в (например) строке, вы можете получить строку запроса, взяв подстроку, начинающуюся с индекса первого вопросительного знака, сделав что-то вроде:

url.substring(url.indexOf("?"))

Это предполагает, что все вопросительные знаки в части фрагмента URL были правильно закодированы. Если в конце есть цель (т.е. #, за которым следует идентификатор DOM-элемента), она также будет включена.

31
ответ дан 27 November 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: