window.open (), адресная строка браузера и декодирование URL-адреса jQuery - PullRequest
0 голосов
/ 05 апреля 2011

Я передаю значения в строке запроса URL, которые интерпретируются JavaScript и используются для заполнения элементов формы.Пользователь щелкает ссылку на одной странице, перенаправляется на другую страницу, которая затем декодирует значения из URL-адреса и заполняет поля формы.

Для декодирования URL, я использую плагин jQuery URL Decoder .

Этот параметр передается window.open():

http://mydomain.com/whatever?EmailAddress=me%40privacy.com&YourName=joe%20schmo&CompanyName=TEXAS%20A%20%26%20M%20-%20LUBBOCK%2C%20TX

Когда я вставляю этот URL в онлайн-версию декодера, он правильно анализируется - параметры строки запроса находятся в объекте .params, правильно декодируются.

Однако после нажатия на ссылку, когда я проверяю окно.location.href, я получаю это:

http://mydomain.com/whatever?EmailAddress=me@privacy.com&YourName=joe%20schmo&CompanyName=TEXAS%20M%20&%20M%20-%20LUBBOCK,%20TX

, который выходит из декодера URL в виде гигантского беспорядка (то есть неправильно декодированного IMO, потому что входные данные не закодированы должным образом).

Как (безопасно) вернуться к строке, которая правильно интерпретируется декодером URL?

1 Ответ

1 голос
/ 05 апреля 2011

используйте функцию javascript следующим образом:

function urlencode(str) {
return escape(str)
      .replace(' ', '%20') // or replace with '+'
      .replace('@', '%40');
}

(я знаю, что вам не нужна первая замена, но она более полная ... вы можете добавлять больше замен по мере необходимости или искать полный urlencode)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...