Javascript Twitter按钮共享页面内容
我正在做一个随机报价机,需要能够将报价共享到twitter,我已经设置了twitter按钮,但似乎无法更改数据文本值以将报价显示在弹出窗口中。我尝试过添加twttr.widgets.load(),但没有效果,还有其他建议吗 HTML-Javascript Twitter按钮共享页面内容,javascript,jquery,twitter,Javascript,Jquery,Twitter,我正在做一个随机报价机,需要能够将报价共享到twitter,我已经设置了twitter按钮,但似乎无法更改数据文本值以将报价显示在弹出窗口中。我尝试过添加twttr.widgets.load(),但没有效果,还有其他建议吗 HTML- 还有一个指向代码笔的链接-您可以创建自己的按钮,而不使用JSAPI,而是一个意图链接()。那么您只需要担心普通HTML 或者,与其担心更新链接,不如为每个随机引用生成链接。下面是一个代码笔示例(进行了一些重构): var引号=[ {文本:“她得到了一个大战利品,
还有一个指向代码笔的链接-您可以创建自己的按钮,而不使用JSAPI,而是一个意图链接()。那么您只需要担心普通HTML 或者,与其担心更新链接,不如为每个随机引用生成链接。下面是一个代码笔示例(进行了一些重构):
var引号=[
{文本:“她得到了一个大战利品,所以我叫她大战利品”,作者:'2Chainz'},
{文本:“fjdkaljfdksla”,作者:'bhd'},
{文本:“Fdhafjdaha”,作者:'fndun'},
{文本:“fjdkfjsdkfjdsiojdsvndio”,作者:'fvdsw'}
]
//返回一个随机报价
函数getRandomQuote(){
var randomNumber=Math.floor(Math.random()*quotes.length);
返回引号[随机数字]
}
//从文本创建tweet按钮
函数createTweetButton(文本){
twttr.widgets.createShareButton(
'https://twitter.com/share“,//url:string
document.getElementById('twitter-button'),//targetEl:DOM节点
{
文本:文本
}//选项:对象
);
};
//生成tweet文本并创建按钮
函数createTweetButtonFromQuote(quote){
var tweetText=(quote.text+“-”+quote.author);
createTweetButton(tweetText)
};
//单击“新建报价”按钮,获取一个随机报价,然后生成一个tweet按钮以共享报价。
$(“#newQuote”)。单击(函数(){
var quote=getRandomQuote();
$(“#quote”).html(quote.text);
$(“#author”).html(“-”+quote.author);
$(“#推特按钮”).empty();
创建TweetButtonFromQuote(quote);
});代码>您的代码的问题是,当您尝试添加数据文本
属性时,twitter widgets代码已经将a
标记转换为iframe
标记。在调用twttr.widgets.load()
之前,需要重新创建初始html结构
将createButton
函数的内容替换为以下内容:
$('iframe.twitter-share-button,a.twitter-share-button').remove();
var twtr = '<a class="twitter-share-button"></a>';
$('#twitter-button').append(twtr);
$('.twitter-share-button').attr('href', 'https://twitter.com/share')
.attr('data-text', quoteText);
twttr.widgets.load();
$('iframe.twitter共享按钮,a.twitter-share-button').remove();
var-twtr='';
$(“#推特按钮”).append(twtr);
$('.twitter共享按钮').attr('href','https://twitter.com/share')
.attr('data-text',quoteText);
twttr.widgets.load();
真管用!使用json而不是数组看起来也不错,我想我会实现它!
var quotes = [
['"She got a big booty so I call her big booty"', '2Chainz'],
['"fjdkaljfdksla"', 'bhd'],
['"fdhafjdahaa"', 'fndun'],
['"fjdkfjsdkfjdsiojdsvndio\"', 'fvdsw']
];
var quoteText = "";
$("#newQuote").click(function() {
var randomNum = Math.floor(Math.random() * quotes.length);
quoteText = quotes[randomNum][0] + " -" + quotes[randomNum][1]
$("#quote").empty();
$("#author").empty();
$("#quote").append(quotes[randomNum][0]);
$("#author").append(" -"+quotes[randomNum][1]);
createButton();
});
var createButton = function () {
var twtr = $(".twitter-share-button");
twtr.attr("href", "https://twitter.com/share");
twtr.removeAttr("data-text");
twtr.attr("data-text", quoteText);
twttr.widgets.load();
};
$('iframe.twitter-share-button,a.twitter-share-button').remove();
var twtr = '<a class="twitter-share-button"></a>';
$('#twitter-button').append(twtr);
$('.twitter-share-button').attr('href', 'https://twitter.com/share')
.attr('data-text', quoteText);
twttr.widgets.load();