我编写了一个随机报价生成器,希望能够将报价分享到Twitter。 http://codepen.io/nachamuami/pen/KrRYpY 通过尝试推特函数,它调用整个函数到twitter而不是代码生成的引用。任何指针都将非常感激。
function getQuote(){
var arrayLength = quoteArray.length; //number of entries in array
var randomValue = Math.floor(Math.random()*arrayLength);
var newQuoteY = quoteArray[randomValue].yiddish;
var newQuoteE = quoteArray[randomValue].translation;
$('#inYiddish').html(newQuoteY);
$('#inEnglish').html(newQuoteE);};
$('#quote-button').click(function(){
getQuote();
});
$('#twitter-button').click(function(){
window.open("https://twitter.com/intent/tweet?text=" + getQuote);
});
});
答案 0 :(得分:1)
声明
window.open("https://twitter.com/intent/tweet?text=" + getQuote);
实际上是将函数本身附加到URI。 JavaScript通过采用字符串形式进行补偿,在这种情况下,这种形式或多或少是您为getQuote
所做的确切声明,尽管是一个字符串。
您可能有以下意思:
window.open("https://twitter.com/intent/tweet?text=" + getQuote());
在这种情况下,您仍然会遇到错误,因为getQuote
没有返回值,因此推文只会说undefined
。要更正此问题,您需要在getQuote
中返回一个字符串。或者,您可以在newQuoteY
之外宣布newQuoteE
和getQuote
,但仍然可以设置window.open("https://twitter.com/intent/tweet?text=" + newQuoteY);
。这将允许类似下面的内容,其中当前显示的Yiddish引用是推特。
>>> l=[1,2,3]
>>> l.index(min(l))
>>> 0
>>> from operator import itemgetter
>>> min(enumerate(l),key=itemgetter(1))[0]
>>> 0