Все, что я хочу сделать, это правильно закодировать следующую ссылку, но по какой-то причине "#" вызывает у меня проблему:
var text = "hello, how are you? &am fine"
var link = "http://example.com/test#zzzzzzzzz"
url = "http://twitter.com/share?url=" + link + "&text" + text;
$("#twitter a").attr("href", url)
Я пробовал encodeURI
или encodeURIComponent
, но все еще имею проблему с "#" . Если я вручную заменим "#" на "% 23", то по какой-то причине код будет закодирован снова. Является ли jQuery attr()
заготовкой какой-либо кодировки вообще?
ИЗМЕНИТЬ Попытка побега дает
http://twitter.com/share?url=http%253A//example.com/test%2523zzzzzzzz
Не знаю, откуда происходит "% 25", а не только% 23
Используя encodeURIComponent
, вы создаете следующее после выполнения $("#twitter a").attr("href", url)
. Откуда идет% 25?
http://twitter.com/share?url=http%253A%252F%252Fexample.com%252Ftest%2523zzzzzzzz