将变量中的文本添加到推文中

时间:2017-04-18 18:22:36

标签: javascript html

我正在尝试发送我从执行getJSON命令的函数发出的文本,我创建的推文按钮打开twitter但没有文本,我希望它自动"粘贴"网页当前显示的引用。我的基本HTML代码如下:

<button id="quoteClick" type="button" class="btn btn-success btn-lg quoteButton text-center btn-block">Get Quote</button>

<div class="col-md-8 show boxed text-center"> Text </div>

<div class="col-md-5 text-center author"> auth
</div>

<a class="tw-button" href="https://twitter.com/intent/tweet/?text=" data-size="large" target="_blank">
    <button type="twbutton" class="btn btn-primary">Tweet quote</button>
</a>

我的JS:

$(document).ready(function() {
  gQuote();

  function gQuote() {
    $.getJSON("https://crossorigin.me/http://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en",
      function(data) {
        var Quote = data.quoteText;
        var Author = data.quoteAuthor;
        var quoteShow = ""
        var quoteAuthor = ""
        quoteShow += "<h3 class='text-center'>" + Quote + "</h3>"
        quoteAuthor += "<h4 class='text-center'>" + Author + "</h4>"
        $(".show").html(quoteShow);
        $(".author").html(quoteAuthor);

      });

  };

  $("#quoteClick").on("click",function() {
    gQuote();
  });
  $(".tw-button").click(function(){
    $(this).attr("href",'https://twitter.com/intent/tweet/?text='+ Quote);

  });
});

我知道Quote变量是在上一个函数中创建的,我不知道我怎么能&#34;携带&#34;它朝着twitter按钮。 我使用的是codepen,因此"target:_blank"是必须的。

2 个答案:

答案 0 :(得分:0)

如果我没有弄错,您只需在Quote函数外声明变量AuthorgQuote()即可。在gQuote()内,您可以根据需要分配它们,并将其最新值传递给$(".tw-button").click()事件。 制作确保您拥有JSON对象并正确解析数据。

我做了类似freecodecamp项目的东西。如果遇到困难,请查看here

答案 1 :(得分:0)

Quote变量是$ .getJSON中回调的本地变量。 一个(也是最简单的)解决方案是将'var Qoute'声明转换为$(document).ready回调的回调,以便'$(“。tw-button”)可以访问它。点击'在右手搜索期间通过范围链回调。但是,这对于更大规模的代码来说并不是很好。

$(document).ready(function() {
    gQuote();

    var Quote; //Declare variable here

    function gQuote() {
        $.getJSON("https://crossorigin.me/http://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en", function(data) {

            Quote = data.quoteText; //Set it here

            var Author = data.quoteAuthor;
            var quoteShow = ""
            var quoteAuthor = ""
            quoteShow += "<h3 class='text-center'>" + Quote + "</h3>"
            quoteAuthor += "<h4 class='text-center'>" + Author + "</h4>"
            $(".show").html(quoteShow);
            $(".author").html(quoteAuthor);

      });
    };

    $("#quoteClick").on("click",function() {
        gQuote();
    });

    $(".tw-button").click(function(){
        $(this).attr("href",'https://twitter.com/intent/tweet/?text='+ Quote);
    });

});