Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Twitter按钮共享页面内容_Javascript_Jquery_Twitter - Fatal编程技术网

Javascript Twitter按钮共享页面内容

Javascript Twitter按钮共享页面内容,javascript,jquery,twitter,Javascript,Jquery,Twitter,我正在做一个随机报价机,需要能够将报价共享到twitter,我已经设置了twitter按钮,但似乎无法更改数据文本值以将报价显示在弹出窗口中。我尝试过添加twttr.widgets.load(),但没有效果,还有其他建议吗 HTML- 还有一个指向代码笔的链接-您可以创建自己的按钮,而不使用JSAPI,而是一个意图链接()。那么您只需要担心普通HTML 或者,与其担心更新链接,不如为每个随机引用生成链接。下面是一个代码笔示例(进行了一些重构): var引号=[ {文本:“她得到了一个大战利品,

我正在做一个随机报价机,需要能够将报价共享到twitter,我已经设置了twitter按钮,但似乎无法更改数据文本值以将报价显示在弹出窗口中。我尝试过添加twttr.widgets.load(),但没有效果,还有其他建议吗

HTML-


还有一个指向代码笔的链接-

您可以创建自己的按钮,而不使用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();