Кодировка Javascript после обновления страницы - PullRequest
0 голосов
/ 08 июня 2018

Я использую jQuery для изменения href тега <a> в document.ready.URL, которым я заменяю тег, содержит закодированные символы.Ссылка работает нормально при первой загрузке страницы, но не после обновления страницы (F5).

Мой код (в document.ready)

var url = "/news#Default=%7B%22k%22%3A%22%22%7D"
$("[href$=newsRD]").attr("href", url);

Когда я обновляю страницу, URLв JavaScript остается неизменным, но он заменяет <a>, изменяя все % на %25 В результате ссылка больше не работает.Это дает следующее:

/news#Default%257B%2522k%2522%253A%2522%2522%257D

Есть ли способ обойти это?

Спасибо!

1 Ответ

0 голосов
/ 08 июня 2018

Проблема в том, что вы кодируете URL дважды.Вы можете заметить, что если вы запустите в своей консоли это:

encodeURI("/news#Default=%7B%22k%22%3A%22%22%7D")
// will print your second result => "/news#Default=%257B%2522k%2522%253A%2522%2522%257D"

перед кодированием, запустите функцию декодирования, чтобы убедиться, что вы не закодировали уже закодированный URL.Взгляните на эти ресурсы:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent

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