Я понял это. Вот как это сделать.
Основная идея заключается в:
- В вашем HTML установить
class
вашего <a>
для кнопки TwitterОпубликовать в чем-то другом, чем .twitter-share-button
. Также дайте <a>
a style="display:none;"
.
- В вашем HTML-коде, где должна появиться кнопка совместного использования щебета, создайте
<div>
(или <span>
) с уникальным id
.
- В вашем JQuery, когда вы хотите установить данные для кнопки Twitter Поделиться вы:
- «клон()
the hidden, mis-named,
` тег из шага # 1
- На этом клоне, установите
data-url
и т.д. .. атрибуты, как вы хотите
- Удалить атрибут
style
из клона (отобразите его)
- Изменения
class
из клона twitter-share-button
append()
этот клон на ваш <div>
с шага 2.
- Используйте
$.getScript()
для загрузки и запуска Javascript на Twitter. Это преобразует ваш клонированный <a>
в со всеми правильными ошибками.
Вот мой HTML (в Jade):
a.twitter-share-button-template(style="display:none;", href='https://twitter.com/share=', data-lang='en',
data-url='http://urlthatwillbe_dynamically_replaced',
data-via='ckindel', data-text='Check this out!',
data-counturl='http://counturlthatwillbe_dynamically_replaced') Share with Twitter
#twitter-share-button-div
Затем в стороне клиента .js:
// the twitter share button does not natively support being dynamically
// updated after the page loads. We want to give it a unique (social_id)
// link whenver this modal is shown. We engage in some jQuery fun here to
// clone a 'hidden' twitter share button and then force the Twitter
// Javascript to load.
// remove any previous clone
$('#twitter-share-button-div').empty()
// create a clone of the twitter share button template
var clone = $('.twitter-share-button-template').clone()
// fix up our clone
clone.removeAttr("style"); // unhide the clone
clone.attr("data-url", someDynamicUrl);
clone.attr("data-counturl", someDynamicCountUrl);
clone.attr("class", "twitter-share-button");
// copy cloned button into div that we can clear later
$('#twitter-share-button-div').append(clone);
// reload twitter scripts to force them to run, converting a to iframe
$.getScript("http://platform.twitter.com/widgets.js");
я получил основные ключи для этого решения здесь: http://tumblr.christophercamps.com/post/4072517874/dynamic-tweet-button-text-using-jquery
Я пытаюсь выполнить в основном то же самое. Я попытался обновить атрибут 'data-url' динамически с помощью этого:' $ ('. Twitter-share-button'). Attr ("data-url", "http: // mynewlink") ;, но jitter-браузер twitter уже выполняется, и это не работает. Помогите! – tig