【问题标题】:Send random quote with tweet button click in Jquery在 Jquery 中单击带有推文按钮的随机报价
【发布时间】:2016-02-29 12:28:27
【问题描述】:

我正在做一个“随机引用机器”,它从存储数组中获取随机引用,并让用户发推文。我创建了随机报价生成器,但无法发布相同的推文。需要一些关于推文按钮的帮助。

我的 Jquery

var quote = new Array()
quote[0] = 'this is first quote'
quote[1] = 'this is second quote'

function tweet() {
window.open('https://twitter.com/intent/tweet?hashtags= freecodecamp&text='   + encodeURIComponent($(".message").html(quote[randomquote]));
}


$(document).ready(function() {
$("#getMessage").on("click", function(){
  var randomquote = Math.floor(Math.random()*(quote.length-1));      
  $(".message").html(quote[randomquote]);      
});

$('#twitter-share-button').on('click', tweet)

})

一点html

<div class = "col-xs-12 well message">
  <h3>Click to get Random Quotes</h3>
</div>
<button id = "tweetMessage" class = "btn btn-default btn-lg" target="_blank"><i class="fa fa-twitter fa-fw"></i> Tweet it</button>
<button id = "getMessage" class = "btn btn-default btn-lg"><i class="fa fa-fire fa-fw"></i> Get Quote</button>

【问题讨论】:

  • var quote = new Array() quote[0] = '这是第一个报价' quote[1] = '这是第二个报价'
  • var quotes = ['this is first quote', 'this is second quote']
  • 至少 5 个缺失;并获得随机值,您可以看到:stackoverflow.com/questions/35606334/…developer.mozilla.org/fr/docs/Web/JavaScript/Reference/…
  • 顺便说一句,您似乎在这里实际上得到了一个很好的答案,但请记住,此类问题存在被关闭的风险,因为过于本地化。 SO 不仅仅是一个问答网站,而是建立一个问题和答案的知识库。坦率地说,没有人会提出这个完全相同的问题。但是,如果您知道这一点,几乎总有一种方法可以重写可能对其他人有用的问题。

标签: javascript jquery


【解决方案1】:
  $('#twitter-share-button').on('click', tweet)

你没有id="twitter-share-button"的元素

随机时也不要减 1。由于您正在执行Math.floor 并且由于Math.random 永远不会完全返回1,因此它永远不会达到上限。

您的randomquote 变量也用于tweet 函数内部,但仅存在于您的document.ready 块内部。你需要想出一种方法来传递它。更有意义的是传递消息本身而不是索引。

对于文本,您应该使用.text(...) 而不是.html(...),因为这将有助于提高安全性(如果您有兴趣,请查找跨站点脚本)。

我看到你在做 freecodecamp。冷静下来,继续努力!

【讨论】:

  • 非常感谢。它现在要上推特了。下面是我的代码笔。 codepen.io/nabendu82/pen/GZRaQw 不过有一个小问题,因为我的引号包含它,所以它在推文中发送 html 字符。
  • 所以从你的推文中删除引号?
【解决方案2】:

终于明白了。 var 报价 = 新数组() 报价[0] = '

“哲学和保险杠贴纸是有区别的。”
-Charles M. Schulz

'
function tweet(message) {
window.open('https://twitter.com/intent/tweet?hashtags= freecodecamp&text='   + encodeURIComponent(message));
}

var msg;
function tweetHandler() {
tweet($(msg).text()); 

}
$(document).ready(function() {
$("#getMessage").on("click", function(){
var randomquote = Math.floor(Math.random()*(quote.length-1));
msg = quote[randomquote];
$(".message").html(msg);
});

$('#tweetMessage').on('click', tweetHandler);

});

我的整个代码在

http://codepen.io/nabendu82/full/GZRaQw/

【讨论】:

    猜你喜欢
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多