在其中发布新内容的推文

时间:2013-02-27 20:58:14

标签: javascript api twitter utf-8

我知道twitter说用户不应该在推文中使用新行,因为它取决于客户端是否显示,但我编写的应用程序将推文引入推特时间线aLa http://www.drawatweet.com。所以这是必须的。

事情是,在我尝试了所有可能的方法之后,我无法强制将推文分成多行。我修改了它们的发布方式,并发送完全相同的“换行”代码,它不会像drawatweet.com那样显示。

我尝试使用twitter api和twitter intent推特页面但没有成功。

另一个使用多行显示消息的http://www.preservatweets.com/示例,再次,我使用相同的机制,但我的新行不起作用。

我开始认为Twitter有一些安排与这个“应用程序”,并由推荐人检查。我知道这听起来很疯狂,但我找不到另一个合乎逻辑的答案。有人知道它是如何工作的吗?

更新

没有办法在twitter中使用新行。我所知道的是生成非常大的字符串(内部没有空格)和新行(或空格),如果两个字符串都不可分割,将强制换行。

提前致谢 伊

2 个答案:

答案 0 :(得分:8)

最简单的方法是......

var msg = "This is a test message. \n is used for new line character.";
var twitterHref = "http://twitter.com/intent/tweet?text=" + escape(msg);

然后将其动态设置为<a/>

答案 1 :(得分:1)

Twitter的网站从不在推文中显示新行,就好像这样。一些客户确实显示新行,但Twitter没有。它们只是像空间一样显示它们。他们确实在推文中留下了实际的新行字符。

似乎就像drawatweet一样工作的原因是因为自动换行。使用什么字符或字符集无关紧要,使用许多字符无关紧要。如果推文中的下一个单词太长而无法放入其段落的宽度,那么它将会换行。他们用块字符制作了“单词”(字符串不是空格),但你可以使用你想要的任何字符。

要测试此项,请用空格替换新行。它仍然包装。您还可以向第二行添加空格,您将看到新行保留,因为第二行的第一部分现在将位于第一行。用你自己的角色替换这些块,它也会起作用。

因此,解决方案就是像它们一样伪造它,并使线条长到足以永远包裹。如果您正在处理单个“单词”,则可以使用unicode no-break space%C2%A0)来替换您不希望它包装的空格。你也可以用它填充短线,使它们足够长以包裹。

演示: jsFiddle

<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%0A123456789012345678901234567890%0A123456789012345678901234567890" target="_blank">long lines with \n - works!</a><br />
<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%20123456789012345678901234567890%20123456789012345678901234567890" target="_blank">long lines with spaces instead of \n - works! (same as \n)</a><br />
<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%0A12345678 9012345678901234567890%0A123456789012345678901234567890" target="_blank">long lines with \n - space in line - doesn't work</a><br />
<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%0A12345678%C2%A09012345678901234567890 %0A123456789012345678901234567890" target="_blank">long lines with \n - no-break space (%C2%A0) in line - works!</a><br />
<a href="https://twitter.com/intent/tweet?text=12345678901234567890%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%0A12345678901234567890%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%0A12345678901234567890" target="_blank">short lines with \n - no-break space (%C2%A0) padding - works!</a><br />