使用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
我可以使用哪种功能或方法来帮助我吗?
谢谢, 詹姆斯。