推特上的分享按钮正在将链接一分为二



首先,我要感谢所有阅读我的问题并试图提供帮助或至少花时间阅读我问题的人。我试图通过在谷歌上做大量研究来防止在这里问这个问题,以及在这里问到的关于这个主题的问题,但到目前为止还找不到答案,所以如果你认为我不应该问这个问题的话,请原谅我,我希望你不要给我-请投票

所以我的问题是,我试图在我的网站上添加一个twitter上的共享按钮,该共享运行良好,但它没有接受所有的get变量,而是考虑共享链接的其余变量部分。

例如:我试图分享的链接是";https://baakline-lebanon.com/en/spot-details.php?spot=1&l=2〃;所以在推特框中显示的链接是";https://baakline-lebanon.com/en/spot-details.php?spot=1"以及"&l=2〃;被认为是这个共享者链接的一部分";https://twitter.com/share?url=">

这是我与这个部分相关的代码:

<li>

<a href="" class="twitter-share-button" data-show-count="false" target="_blank">
<span class="icon">
<i class="fab fa-twitter"></i>
</span>
</a>

<script>
var twitterBtn = document.querySelector(".twitter-share-button");
function init() {
var postUrl = window.location.href;
twitterBtn.setAttribute("href", "https://twitter.com/share?url="+postUrl);
}
init();

</script>
</li>

解决方案:

我在他们的共享程序中查看了facebook的url,发现他们正在替换"="以及"&quot;使用RFC 3986标准,所以我制作了这个函数,让它替换我的url 中的这些字符

var twitterBtn = document.querySelector(".twitter-share-button");
function myUrlEncode(string) {
var string = string;

var string = string.replace("&", "%26");
return string.replace("=", "%3D");
}
function init() {
var postUrl = encodeURI(window.location.href);

postUrl = myUrlEncode(postUrl);
//twitterBtn.setAttribute("href", "https://twitter.com/share?url="+postUrl);
twitterBtn.setAttribute("href", "https://twitter.com/intent/tweet?url="+postUrl);

}
init();

最新更新