Строка запроса в JavaScript

Используя document.referrer, мы получим все ссылки на URL в JavaScript, например следующие:

http://localhost/testwordpress/wp-admin/admin.php?page=thesis-options&upgraded=true

Как из этого вывода мы можем извлечь только часть строки запроса:

?page=thesis-options&upgraded=true

Есть ли какой-нибудь метод в JavaScript?


person Aadi    schedule 21.04.2010    source источник


Ответы (3)


Если вы просто хотите получить значения из строки запроса, я использую следующую функцию:

function getQuerystring(key)
{
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
}

Просто передайте ключ, который вы ищете, и получите значение обратно. IE: getQueryString('upgrade') вернет true

person ashurexm    schedule 21.04.2010
comment
Обратите внимание, что вы можете заменить window.location.href на document.referrer. - person Daniel Vassallo; 21.04.2010
comment
@ Даниэль Вассалло: Это хороший момент. window.location.href будет иметь только то, что пользователь видит в своем браузере. Если вы ищете конкретную информацию о реферере, может быть лучше использовать document.referrer. - person ashurexm; 21.04.2010

Чтобы получить строку запроса из document.referrer, вы можете использовать split():

var qs = document.referrer.split('?')[1];

if (typeof qs !== 'undefined') {
    // qs contains the query string.
    // this would be "page=thesis-options&upgraded=true" in your case.
}
else {
    // there was no query string in document.referrer.
}
person Daniel Vassallo    schedule 21.04.2010

Для этого есть несколько функций. См., например, это.

person Community    schedule 21.04.2010