Aarthi.33 Ответов: 2

Привет может ли кто нибудь помочь мне получить значение querystring из URL в javascript и передать его другому существующему методу


мне нужно передать строку запроса через URL-адрес, получить значение строки запроса из URl-адреса и передать это значение существующему методу в javascript.

Что я уже пробовал:

$. connection. hub. start (). done(функция () {
$('#sendmessage'). click (функция () {
var someValue = $('#message'). val();
var url = 'https://www.google.co.in?Empid=' + некоторое значение;
окна.открыть(URL-адрес);
)};

2 Ответов

Рейтинг:
2

Sergey Alexandrovich Kryukov

Вот как вы можете получить URL текущей страницы:

var url = window.location; // object, not a string
var urlString = window.location.href;

Вот как вы можете разобрать эту строку, чтобы получить объект с парами ключ-значение, представляющими параметры запроса:
function parseQuery(url) {
   var result = {};
   var parameters = window.location.search;
   // returns query string after '?', which can be empty
   if (!parameters) return result; 
   parameters = parameters[1].split("&");
   for (var parameter in parameters) {
      var keyValue = parameters[parameter].split("=");
      result[keyValue[0]] = decodeURIComponent(keyValue[1]);
   }
   return result;
}

// ...

// usage:
// let's assume the url is http://www.myDomain.tld?first=1&second=2
var test = parseQuery(window.location.href);
var first = test.first; // returns 1
var second = text.second; // returns 2
// same thing:
first = test["first"]; // returns 1
second = text["second"]; // returns 2

Да, я проверил его перед отправкой. :-)

Обратите внимание, что моя функция не учитывает все патологические случаи. Вы можете использовать его как оно, тогда вы можете иметь дело с undefined объекты, возвращаемые в виде значений, и так далее. Или вы можете добавить некоторые проверки, в соответствии с вашими предположениями о строке запроса и вашими требованиями.

[EDIT] я улучшил свой образец кода в соответствии с предложениями Ричарда Диминга в его комментариях к ответу, см. ниже.

—СА


Richard Deeming

Вы могли бы использовать location.search чтобы извлечь строку запроса без необходимости разбивать весь URL-адрес и не беспокоиться о якоре.

Вы, вероятно, также захотите позвонить decodeURIComponent на каждом значении удалить любую URL-кодировку.

Sergey Alexandrovich Kryukov

Полезные идеи. Я не думал об этом. Я улучшил код в соответствии с этими предложениями и зачислил их — большое вам спасибо.
—СА

Рейтинг:
1

TheKarateKid

Привет, Арти.,
Когда я попробовал вышеприведенный сценарий и использовал его в своем сценарии как есть, он дал мне ошибку. Я думаю, что скобки не совпадают.
Похоже, вы хотите использовать $(‘#message’).val() в качестве строки запроса. Если это так, то это работает, если вы используете следующий скрипт

$.connection.hub.start().done(function () {
        $('#sendmessage').click(function () {
            var someValue = $('#message').val();
            var url = 'https://www.google.co.in?Empid=' + someValue;
            window.open(url);
        });
    });

Надеюсь, это поможет


Aarthi.33

Привет, код, который я дал, работает нормально.. да, скобка отсутствует, мне нужно реализовать harcoding логина и пароля входа в систему в javascript. пожалуйста, помогите мне

Sergey Alexandrovich Kryukov

Это неверная идея; такая парольная "защита" не имела бы смысла; она ничего не может защитить.
—СА

Aarthi.33

привет его для тестирования цели в местном не для производства

Sergey Alexandrovich Kryukov

Хорошо, но зачем тогда пароль? Могу я узнать, что вы хотите делать в производстве?
—СА

Aarthi.33

я понятия не имею, как это должно быть реализовано в производстве
я совершенно новичок в такого рода приложениях и понятия не имею, как это должно быть сделано в javascript.

Aarthi.33

на данный момент он должен быть протестирован в локальном режиме с harcoded значениями не могли бы вы помочь

Sergey Alexandrovich Kryukov

Я не думаю, что это имеет какой-либо практический смысл, особенно если вы "понятия не имеете", но я дал вам некоторый код в решении 2. Это то, что вам нужно?
—СА

Aarthi.33

Привет, Сергей, спасибо.... Я понятия не имею, но есть другая команда, которая бы это решила, но на данный момент для целей тестирования мне нужно реализовать как жестко закодированные значения в javascript для входа в приложение

Sergey Alexandrovich Kryukov

Я не думаю, что это имеет смысл. Ничто не должно передаваться через строку запроса; и худшая идея-передать учетные данные.

Я формально ответил на ваш вопрос о получении параметра URL-запроса; дал вам полностью рабочий код; теперь вы примете формальный ответ?

—СА