我正在做一个“随机引用机器”,它从存储数组中随机引用并让用户发推特。我创建了随机引用生成器,但无法发送相同的推文。需要一些推特按钮的帮助。
我的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)
})
<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>
答案 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;
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);
});
我的整个代码