Twitter分享encodeURIComponent问题

5

我正在做一个项目,使用encodeURIcomponent函数时遇到了一些问题。这个网站是一个社交媒体内容库,允许我将内容存储在CMS中,并在其页面上显示带有链接和按钮的副本,以分享到社交媒体网站。我在Twitter组件方面遇到了困难,需要一些帮助。这是我的代码:

   
   
function tweetClick() {
 var url = "http://urlfromcms.com";
 var text = "I'm getting this text dynamically from the CMS too.";
 window.open('http://twitter.com/share?url='+encodeURIComponent(url)+'&text='+encodeURIComponent(text), '');
   }                   
<a class="shareitbutton w-button" href="#" target="_blank" title="Tweet" onclick="tweetClick(); return false;">Tweet It!</a>

这个功能很好用,但有一个问题。如果复制的文本中有&、撇号、引号等符号,则它们也会被编码,这就需要编辑推文,这与初衷相违背。我该如何编码以获得 Twitter 需要的空格 %20,同时又不影响我的&和撇号?
非常感谢您的帮助!

所以,我想我真正需要弄清的是如何使用encodeURIComponent的.replace函数。然后我就可以确保所有这些特殊字符不会受影响了。我知道我的问题是一无所知。我查阅了文档,但那看起来像希腊文。唉,这就是为什么我坚持使用CSS和HTML的原因。我太难了。 - Ben Parker
2个回答

0

您的代码似乎已经可以正常工作了。Twitter 足够聪明,可以解码您提供的文本:

enter image description here

enter image description here


有趣。因为在我这里使用时并非如此。点击“Tweet It!”按钮,您会看到:http://social-media-share.webflow.io/posts/imported-item-11 - Ben Parker
看一下页面源代码:var text =“Coach Pratt已经训练了成千上万的运动员,包括Elton Brand和Jewell Loyd等职业运动员,还有许多其他人。他还为大学球员为NBA选秀做准备已经十年了。你准备好把你的比赛提升到更高的水平了吗!”;在到达该点之前,您的文本已被转义。 - jake

0
问题是从CMS获取的文本有编码HTML实体
通过使用这个答案,您可以解码text中的HTML实体。
然后将解码的字符串放入window.open调用中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接