Я пытаюсь поместить ссылку на общий доступ в Twitter по электронной почте. Поскольку это по электронной почте, я не могу полагаться на JavaScript и должен использовать кнопку "Построить свою собственную".
Например, поделитесь ссылкой на Google:
<a href="#" onclick="location.href='http://www.twitter.com/share?url=http://www.google.com/>Tweet</a>
Это прекрасно работает. Проблема, с которой я столкнулся, заключается в том, что URL-адрес содержит строку запроса.
<a href='; return false;"http://www.twitter.com/share?url=http://mysite.org/foo.htm?bar=123&baz=456">Tweet</a>
URL-адреса с строками запроса путают службу сокращения URL-адресов Twitter, t.co. Я пробовал кодирование URL по-разному и не могу заставить ничего работать. Самое близкое, что я получил, - это сделать это.
<a href="#" onclick="location.href='http://www.twitter.com/share?url=http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456'; return false;">Tweet</a>
Здесь я закодировал только строку запроса. Когда я это делаю, t.co успешно сокращает URL-адрес, но, следуя сокращенной ссылке, вы попадаете в кодированный URL-адрес. Я вижу http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456
в адресной строке и получаю следующую ошибку в браузере
Не найдено
Запрошенный URL/foo.htm?bar=123&baz=456 не найден на этом сервере.
Я не понимаю, как решить эту проблему.
Изменить: Re: onteria _
Я пробовал кодировать весь URL. Когда я это делаю, в Tweet не появляется URL.