通过符号传递给twitter意图

时间:2016-10-14 10:24:27

标签: javascript html ajax api twitter

使用Twitter功能创建随机报价生成器。

您点击按钮从API生成报价,出现报价,如果用户希望发推,则会有选项。

我的问题是我不知道如何将撇号和短划线等符号传递给URL,而不会将字符转换为& sdfkj; (或者不管它是什么)。

代码:

HTML:

<!DOCTYPE html>
<html>
<head>
  <title>Random Quote Generator</title>
      <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>

<body>
  <div class="container">
    <h1>Random Quotes Rewritten</h1>
    <p>Would you like a random sentence to send to someone or incorporate in your project? Press the button below!</p>
    <div class="quotearea">

    </div>
    <button id="newquote">New quote</button>
    <button class="tweetquote"><i class="fa fa-twitter" aria-hidden="true"></i>
   Tweet Quote</button>
  </div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<script src="script.js"></script>
</body>

JS:

var quoteObj;
var quoteContent;
var quoteTitle;

$("#newquote").click(function(){
  $.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=30&jsonp=mycallback", function(a) {
    $(".quotearea").empty();
    $(".quotearea").addClass("border");
    quote = a[Math.floor(Math.random()*a.length)];
    quoteContent = quote.content;
    quoteTitle = quote.title;
    $(".quotearea").append(quoteContent + " " + quoteTitle);
    $('.tweetquote:hidden').show();
  });
});

$('.tweetquote').click(function() {
  window.open('https://twitter.com/intent/tweet?text=' + quoteContent + quoteTitle);
});

随机生成的引用: https://i.gyazo.com/21757e1bc9a5fe4040a21fb2b9cc9625.png

引用传递给Twitter意图(没有URIEncoding): https://i.gyazo.com/44e7c9922255db19f6abd4de6a5cb4e6.png

正如您所看到的,生成的报价只是切断了。所以我在网上搜索并发现encodeURIComponent(),似乎是个不错的选择。

但现在,引用看起来很奇怪。

https://i.gyazo.com/ff78cd907d25a88c3c8ca20533b60d6c.png

我可以使用哪种功能或方法来帮助我吗?

谢谢, 詹姆斯。

0 个答案:

没有答案