使用window.open()方法在twitter上分享报价

时间:2017-10-09 12:41:02

标签: javascript twitter

我正在创建一个应用程序,只需单击一个按钮即可随机生成报价。我希望用户能够在Twitter或Facebook上分享这个引用,但这就是问题出现的地方。

HTML:

<div class="row">

<div id="quoteBox" class="col-xs-6 col-xs-offset-3">

<p><span id="famousQuote">"Nothing in life is to be feared; it is only to be understood. Now is the time to understand more so that we may fear less."</span></p>

<i id="fbicon" class="fa fa-facebook-official fa-3x" aria-hidden="true" style="color:white"></i>
<i id="twitterShare" class="fa fa-twitter fa-3x" aria-hidden="true" style="color:white"></i>


</div>

<div class="row">

<div class="col-xs-4 col-xs-offset-4">
<button id="generateQuote" type="button" class="btn btn-primary btn-block">Change Quote</button> 

</div>


</div>

</div>

JAVASCRIPT:

document.getElementById("twitterShare").addEventListener("click", function(){
var url ="https://twitter.com/intent.tweet";
var text = document.getElementById("famousQuote").value;
window.open(url+"?text="+text);
        })

然而,当我点击推特图标时,链接会显示&#34;抱歉,该页面不存在!&#34;

显然,我在这里遇到的错误之一是URL,或者也许是我编写它的方式。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您需要对网址参数进行编码,并使用其他网址:

document.getElementById("twitterShare").addEventListener("click", function(){
  var url ="https://twitter.com/share?url=" + encodeURIComponent(document.location);
  var text = encodeURIComponent(document.getElementById("famousQuote").innerText);
  window.open(url + "&text=" + text);
})