【问题标题】:Button not properly tweeting text按钮未正确发布推文
【发布时间】:2017-06-18 23:57:59
【问题描述】:

我有这个codePen,它是一个随机报价生成器。 我还有一个推特按钮,应该推特生成的报价。 当前按下它时,它会发布另一个随机报价,而不是显示的当前报价。这是函数:

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

function tweetIt(){
var randomNumber = Math.floor(Math.random() * (quotes.length));
window.open("https://twitter.com/intent/tweet?text=" + quotes[randomNumber]);
}

我尝试通过选择报价所在的当前 ID 来解决此问题,但无济于事:

function tweetIt(){
  var tweet = document.getElementById('quote').value;
  window.open("https://twitter.com/intent/tweet?text=" + quotes[randomNumber]);
};

对此的任何帮助将不胜感激。

【问题讨论】:

    标签: javascript jquery html css twitter


    【解决方案1】:

    您将当前报价存储在 id 为“quoteDisplay”的元素中:

    function newQuote() {
        var randomNumber = Math.floor(Math.random() * (quotes.length));
        // The content for your tweet is being set here
        document.getElementById('quoteDisplay').innerHTML = quotes[randomNumber];
    };
    

    因此,如果您想在推特上发布当前报价,则需要针对该特定元素定位 textContent 属性:

    function tweetIt(){
      // Get the contents of your current tweet
      var tweet = document.getElementById('quoteDisplay').textContent;
      // Open a new window with that tweet content
      window.open("https://twitter.com/intent/tweet?text=" + tweet);
    };
    

    【讨论】:

    • 不要使用innerText。它不是标准的,并且在 FireFox 中不存在。使用textContent
    • 感谢您清楚地解释这一点。另外,谢谢@Barmar
    • @Barmar 谢谢你,我也调整了答案。
    猜你喜欢
    • 2017-06-09
    • 2013-08-22
    • 2012-12-04
    • 2013-06-03
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    相关资源
    最近更新 更多