Я понял это. Вот как это сделать.
Общая идея:
- В вашем HTML установите
class
вашего <a>
для кнопки общего доступа Twitter, чтобы она отличалась от .twitter-share-button
. Также дайте <a>
a style="display:none;"
.
- В своем HTML, где вы хотите, чтобы появилась кнопка общего доступа Twitter, создайте
<div>
(или <span>
) с уникальным id
.
- В вашем jQuery, когда вы хотите установить данные для кнопки обмена Twitter, вы будете:
- 'clone ()
the hidden, mis-named,
`тег из шага # 1
- Для этого клона установите атрибуты
data-url
и т. Д. ...
- Удалить атрибут
style
из клона (показать его)
- Измените
class
клона на twitter-share-button
append()
этот клон к вашему <div>
с шага 2.
- Используйте
$.getScript()
, чтобы загрузить и запустить JavaScript Javascript. Это преобразует ваш клонированный <a>
в <iframe>
со всеми нужными элементами.
Вот мой HTML (в нефрите):
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