在Jquery中使用tweet按钮发送随机引用

时间:2016-02-29 12:28:27

标签: javascript jquery

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

我的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>

2 个答案:

答案 0 :(得分:4)

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

您没有id="twitter-share-button"

的元素

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

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

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

我看到你在做freecodecamp。冷静并继续保持!

答案 1 :(得分:1)

终于搞定了。     var quote = new Array()     引用[0] =&#39;

&#34;哲学和保险杠贴纸之间存在差异。&#34;
-Charles M. Schulz < / H3>&#39;

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/