Динамическое изменение текста в кнопке твиттера (rails + jquery) - PullRequest
0 голосов
/ 17 февраля 2011

Хорошо, у меня есть index.html.erb.В нем у меня есть меню, которое я отображаю из _menu.html.erb, и div, в котором я отображаю ссылку из show.html.erb, используя show action в моем контроллере.Ссылка отображается как <%=link_to h(@link), h(@link) %> (код из show.html.erb).

Div, в котором отображается ссылка, часто обновляется на $('#div_with_link').load('controller/show');, поэтому @link сильно меняется.

Проблема в том, что я не знаю, что я должен поместить в текстовую область кнопки твиттера.Я хочу, чтобы люди могли поделиться текущей ссылкой.Я попытался data-text="<%=@video %>", но чем он просто показывает ссылку на моей веб-странице, а не сгенерированную.

Что я должен сделать, чтобы поместить сгенерированную ссылку в мою кнопку Twitter?Любые предложения помогут, заранее спасибо.

1 Ответ

2 голосов
/ 18 февраля 2011

Хорошо, если вы используете кнопку по умолчанию в твиттере, это будет довольно сложно достичь.Я бы порекомендовал просто собрать свою собственную кнопку и обновить атрибут href для этой ссылки через Javascript, включая упомянутые параметры.Вот некоторый код, с которого можно начать:

Используйте его вместо кнопки Twitter и стилизуйте его соответствующим образом:

<a href="http://twitter.com/share" id="tweet">Tweet</a>

Каждый раз, когда вы загружаете что-то новое в div, задайте новый URL (и другие параметры, если хотите) например, вот так:

// not knowing your app, I'm just guessing here:
var twitterParams = { 
    url: <%= url_for(@video) %>, 
    text: <%= @video.title %> 
}; 
$('#tweet').attr('href', "http://twitter.com/share?" + $.param(twitterParams));

Вы можете сделать это, например, в фрагменте HTML, который вы возвращаете, когда загружаете что-то новое через AJAX.

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