2017-01-24 3 views
1

У меня есть случайная цитата генератор (http://codepen.io/anon/pen/wgqWgo) и при попытке чирикать цитату, я получаю следующий результат:кнопка Twitter не чирикают правильно

enter image description here

Я не связывая мою цитату правильно я предполагаю, в моя функция. Будучи новичком в JavaScript, сложно сказать, что. Я много искал об этом и, похоже, не нашел решения.

Мой HTML:

<div class="row"> 
        <div class="col-12 buttons"> 
         <a class="twitter-share-button" href="http://twitter.com/share" target="_blank"><button type="button" class="btn btn-outline-danger" onclick="tweetIt()"><i class="fa fa-twitter" aria-hidden="true"></i></button></a> 
         <button type="button" class="btn btn-outline-danger" onclick="newQuote()">Quote</button> 
        </div> 
       </div> 

    <div class="row"> 
        <div class="col-12"> 
         <div id="quoteDisplay" class="writing"> 
          <!-- Quotes here --> 
         </div> 
        </div> 
       </div> 

Мои JavaScript:

var quotes = [ 
    "There is nothing to writing. All you do is sit down at a typewriter and bleed.", 
    "Happiness in intelligent people is the rarest thing I know.", 
    "The world breaks everyone, and afterward, some are strong at the broken places." 
] 
function newQuote() { 
    var randomNumber = Math.floor(Math.random() * (quotes.length)); 
    document.getElementById('quoteDisplay').innerHTML = quotes[randomNumber]; 
}; 

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

ответ

0

Ссылка, которая используется в вашем коде, это один в <a> тега.

Вы не хотите этого. Эта ссылка не содержит данных, поэтому твиттер по умолчанию использует URL как twitter.com/intent/tweet?url=&original_referer=, который выдает текст в качестве URL-адреса, с которого вы начинаете. (В вашем случае это ваш местный).

Там нет необходимости, чтобы обернуть твиттер button Н. <a> тег, так как вы используете oncick() function.

Следующий код, кажется, делает то, что вы пытаетесь достичь.

Сначала измените HTML следующим образом:

<div class="row"> 
        <div class="col-12 buttons"> 
         <button type="button" class="btn btn-outline-danger" onclick="tweetIt()">Tweet</button> 
         <button type="button" class="btn btn-outline-danger" onclick="newQuote()">Quote</button> 
        </div> 
       </div> 

    <div class="row"> 
        <div class="col-12"> 
         <div id="quoteDisplay" class="writing"> 
          <!-- Quotes here --> 
         </div> 
        </div> 
       </div> 

И ваш .js должен выглядеть следующим образом:

var quotes = [ 
    "There is nothing to writing. All you do is sit down at a typewriter and bleed.", 
    "Happiness in intelligent people is the rarest thing I know.", 
    "The world breaks everyone, and afterward, some are strong at the broken places." 
] 
function newQuote() { 
    var randomNumber = Math.floor(Math.random() * (quotes.length)); 
    document.getElementById('quoteDisplay').innerHTML = quotes[randomNumber]; 
}; 

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

Спасибо большое. Помог мне с проблемой, с которой я боролся некоторое время в чистом и простом виде. – YoungCoder

Смежные вопросы